1. ホーム
  2. javascript

JSONPを使用しているときにjQuery $.getJSON (またはdatatypeが'jsonp'に設定された$.ajax)エラーをキャッチするにはどうすればよいですか?

2023-10-19 18:42:22

質問

jQueryでJSONPを使用する際にエラーをキャッチすることは可能でしょうか?私は$.getJSONと$.ajaxの両方のメソッドを試しましたが、どちらも私がテストしている404エラーをキャッチすることはできません。以下は、私が試したことです(これらはすべて正常に動作しますが、失敗した場合を処理したいことに留意してください)。

jQuery.ajax({
    type: "GET",
    url: handlerURL,
    dataType: "jsonp",
    success: function(results){
        alert("Success!");
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        alert("Error");
    }
});

そしてまた

jQuery.getJSON(handlerURL + "&callback=?", 
    function(jsonResult){
        alert("Success!");
    });

また、$.ajaxErrorを追加してみましたが、これもうまくいきませんでした。

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});

返信をありがとうございました。

どのように解決するのですか?

成功した結果を返さない JSONP リクエストは、成功または失敗のいずれのイベントもトリガーされないようで、良くも悪くもそれは明らかにデザインによるものです。

バグトラッカーを検索した結果、次のものがありました。 パッチ があり、タイムアウトコールバックを使って解決できる可能性があります。 参照 バグレポート#3442 . エラーを捕捉できない場合は、少なくとも成功するまでの適当な時間を待った後にタイムアウトさせることができます。