не может получить обновления статуса Twitter от jQuery - PullRequest
0 голосов
/ 12 июня 2010

почему в приведенном ниже коде отображается предупреждение «получил результат ноль»? в то время как запрос, кажется, отправляет правильный JSON.

 $(function(){
       $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterusername', function(data) {
        alert('got the result '+data);
        });
       });

1 Ответ

0 голосов
/ 12 июня 2010

Из-за междоменных политик безопасности.

 $(function(){ 
       $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterusername&callback=?', function(data) { 
        alert('got the result '+data); 
        }); 
       }); 

http://www.jsfiddle.net/yewVa/

Обратите внимание на добавление callback=? к URL. Обратите внимание, что сервер должен поддерживать ответы JSONP, чтобы это работало.

См. http://api.jquery.com/jQuery.getJson/ для более подробной информации по обоим из них.

JSONP требует веб-сайт, с которого вы извлекаете данные, чтобы понимать JSONP, а не веб-сайт, на котором он работает. JSONP работает путем введения тегов <script> в ваш документ, с src, установленным в качестве удаленного документа.

JSONP полагается на удаленный документ, упаковывающий его ответ в имя функции, указанной в обратном вызове (jQuery маскирует это от вас, поэтому вы видите только «?» В качестве параметра обратного вызова. После того, как jQuery закончил возиться, URL заканчивается как http://somewhere.com/?someparam=4&callback=foo. Ответ удаленного сервера формулируется как foo({ someparam:4} ), который анализируется как JavaScript, поскольку он был загружен в тег <script>.

Обратите внимание, что благодаря такому подходу вероятность обработки ошибок мала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...