Получение "undefined" при запросе API поиска в Twitter с помощью MooTools. Есть идеи почему? - PullRequest
1 голос
/ 09 декабря 2011

У меня есть следующий код:

window.addEvent('domready', function() {
    console.log('starting twitter stuff');
    var twitter = $('twitter');
    var jsonReq = new Request.JSON({
        method: 'get',
        secure: false,
        url: 'http://search.twitter.com/search.json?q=%23rhschelsea&rpp=1&include_entities=false&result_type=recent',
        onRequest: function() {
            twitter.set('text', 'Loading...');
        },
        onComplete: function(response) {
            twitter.set('text', 'Loaded tweets');
            console.log(response);
            console.log('foobar');
        }
    }).send();
});

Я вижу "foobar" в консоли. Я вижу "Загрузка ...", а затем "Загруженные твиты" на странице. Но я вижу "неопределенный", где я регистрирую переменную response.

Есть мысли почему? URL работает, и если я помещаю его в браузер, я вижу JSON.

1 Ответ

3 голосов
/ 09 декабря 2011

вы не можете использовать Request.JSON в удаленном домене из-за XSS / той же политики происхождения - он основан на запросе, который является простым XHR.используйте вместо этого Request.JSONP, который основан на сценариях, следовательно, не подвержен ограничениям домена, вот рабочая скрипка:

http://jsfiddle.net/dimitar/B5rF4/

JSONP доступен в mootools-more.

twitter реагирует на добавление callback=foo к указанному вами URL-адресу, помещая его в запрошенный обратный вызов foo({...}), что делает его JSONP-совместимым.

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