4

:この質問を含む他の回答を確認しました:jQuery 1.5より前のJSONPエラーの問題が解決されました。この問題の影響を受けないと思われる JQuery 1.7 を使用しています。

JQuery 1.5では、JSONPで適切なエラー関数を使用できます(「jqXHR オブジェクト」を参照)。ただし、エラー関数は起動していないようです。

$.getJSON(url, function(response) { 
    console.log(response)   
}).error( function() { console.log('Error occurred.') } )   

Chrome Dev Tools を見ると、JSONP リクエストで次のエラーが生成されます。

GET https://twitter.com/status/user_timeline/somepretendusername.json?count=2&callback=jQuery171005595548846758902_1334772179012&_=1334772179132 400 (Bad Request)

ただし、 .error() コールバックは単に実行されていないようです。JSONP で適切なエラー処理を行うには何が必要ですか?

4

1 に答える 1

2

エラー関数は、リクエストにエラーがある場合にのみトリガーされます。リクエストは行われていますが、ユーザー名が存在しない場合、Twitter は 400 を返します。偽のユーザー名を使用して試してみたところ、あなたと同じ応答が得られましたが、自分のユーザー名を使用したところ、チャンピオンのように機能しました.

[編集] JSONP でエラーを処理する方法を尋ねているようです。なんらかの理由で、jQuery にはこれに対する適切なエラー処理がないようです。JSONP の実際のエラー処理を約束するプラグインを見つけました。ここでチェックしてください

[編集2] それをチェックしてください、それは動作します!

$(document).ready(function() {
    var url = 'https://twitter.com/status/user_timeline/thisisnotarealtwitterhandle.json?count=2&callback=?';
    var jqxhr = $.jsonp({
        url: url,
        success: function(response) {
            console.log(response)
        }
    }).fail(function() { console.log('error'); });
});
于 2012-04-18T18:26:15.063 に答える