0

HTMLとJavascriptで簡単なアプリを書いています。jQueryの.ajax()メソッドを介してuser_timelineを取得しようとしています。問題は、タイムラインをXMLで取得したいのですが、この単純なタスクで失敗し続けることです。これが私のコードです:

$.ajax({
        type: 'GET',
        dataType: 'xml',
        url: 'http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=stepanheller',
        success: function(data, textStatus, XMLHttpRequest) {
            console.log(data);
        },
        error: function(req, textStatus, error) {
            console.log('error: '+textStatus);
        }

});

奇妙なことに、まったく同じことを試してみると、XMLではなくJSONを使用すると、スクリプトが機能します。

$.ajax({
        type: 'GET',
        dataType: 'jsonp',
        url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stepanheller',
        success: function(data, textStatus, XMLHttpRequest) {
            console.log(data);
        },
        error: function(req, textStatus, error) {
            console.log('error: '+textStatus);
        }

});

リクエストで間違っていることのヒントを教えてください。古いバージョンのAPIを使用していることは知っていますが、現在OAuthを処理しません。ありがとう。

4

1 に答える 1

1

クロスドメインajaxリクエストを送信することは一般的に不可能です。それが原則です。

JsonPはこの制限を回避するための古典的な方法であり、私の知る限り、Xmlに相当するものはありません。ブラウザの互換性の制約に応じて、XHR2を使用してこれを実現できます。

それ以外の場合、唯一の解決策はサーバープロキシを設定することです。

Client --Ajax--> Your server --HttpRequest--> Twitter
于 2013-01-03T16:54:11.007 に答える