-1

私の ajax リクエストは、レート制限のある API にヒットしています。

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    dataObj : index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});

いつレート制限に達したかを知りたいです。

ただし、コンソールでこれを示すリクエストの場合:

リソースの読み込みに失敗しました: サーバーは 429 (OK) のステータスで応答しました

「成功」または「エラー」が表示されません。成功とエラーが実行されないようです。

たとえば、ポップアップして警告する方法はありますか?

試してみcompleteましたが、うまくいきません。

ありがとうございました

4

2 に答える 2

2

のドキュメントは見つかりませんでしdataObjたが、削除するとクエリが正しく実行されたようです。

それを取り除くと、errorコールバックが実行さerrorれ、コンソールで確認できるようになります。

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});

編集: 実際に変更したいのはデータ型であることがわかります。明示的にコールバックも渡している場合を除き、jQuery に取得jsonしていて戻っていないことを伝える必要がありjsonpます。

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "json",
    dataObj: index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    }
    ,error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    }
});
于 2015-07-21T11:11:48.390 に答える
0

次のように、設定で jQuery statusCode オブジェクトを使用してみてください。

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    dataObj : index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    },
    statusCode: {
      429: function() {
        alert( "Exceeded request limit." );
      }
    }
});
于 2015-07-21T11:14:53.867 に答える