1

ajaxを使用してGETリクエストを行い、JSON値が返されることを期待しています。

ただし、私のホスティングにはファイアウォールがインストールされています。1秒あたり2リクエストしかかかりません。それ以外の場合は、接続がブロックされ、エラーページが表示されます。(空白のページです。)したがって、1秒間に3つのリクエストを行うと、3番目のリクエストがJSON応答を取得することはありません。したがって、loading.gifは回転し続けます。

jQueryでタイムアウト(たとえば5秒)を作成して、タイムアウト関数をコールバックするにはどうすればよいですか?

4

2 に答える 2

1

これを試して:

$.ajax({
    url: YourUrl,
    async: true,
    timeout: 5000,       //5 seconds
    success: function(args) { 

                     // on success code
    }
})
于 2013-02-26T02:25:35.113 に答える
0

パラメータとしてタイムアウト関数を使用して、カスタムGETリクエストを作成できます。

$.getWithTimeOut = function(url, params, datatype, onsuccessfunction, aftertimeoutfunction, timeout){
     $.get(url, params, function(data) {
          onsuccessfunction(data);
          setTimeout(aftertimeoutfunction, timeout);
     }, datatype);
};

次に、電話するだけです。

$.getWithTimeOut('url/url', { param1: value1 }, 'json', function(data){
     //success code here
}, function(/*params*/){
   //timeout code here
}, 5000);
于 2013-02-26T02:46:34.353 に答える