Как я могу получить доступ к responseText объекта jqXHR от успешного вызова AJAX? - PullRequest
0 голосов
/ 17 октября 2011

В моем коде JavaScript есть следующий вызов ajax

url = 'http://news.ycombinator.com/?callback=?';
$.ajax({url:url ,async:!1,dataType:'script', complete:function(result)
                                   {alert(JSON.stringify(result));} 
      });

Следующее распечатано в виде предупреждения.

{'readyState':4, status:200, statusText:'success'} 

У него нет responseText. Но все же в консоли chrome я вижу все возвращаемые данные HTML страницы ycombinator. Как я могу получить доступ к этому тексту?

С другой стороны, если я изменю переменную url на URL, который возвращает действительный объект json, как показано ниже,

urll = 'http://gdata.youtube.com/feeds/api/videos?q=basshunter&format=5&max-results=5&v=2&alt=jsonc';
$.ajax({url:urll ,async:!1, complete:function(result)
                                   {alert(JSON.stringify(result));} 
      });

возвращает весь текст ответа, как и ожидалось.

Следует отметить, что если я не укажу URL-адрес на действительный URL-адрес, возвращаемый JSON, как в первом случае, я должен предоставить опцию dataType: 'script' (или JSON). В противном случае он выдаст междоменный домен. запрос ошибки. Во втором случае не возникало междоменной ошибки, даже если я не указал dataType.

1 Ответ

1 голос
/ 17 октября 2011

Замените ваш полный обратный вызов на success . Успешный обратный вызов выполняется при успешном выполнении запроса ajax.

Также в вашем dataType используйте «json» вместо «script» если вы используете «script» в dataType , он вернется как "{\"key\":\"value\"}".

если вы используете "json" в dataType , он вернется как {"key":"value"}.

...