2

おそらく質問を修正するのが最善です:

コードに ajax 呼び出しがあり、送信直後に呼び出しをキャンセルしたい。基本的に、私は応答を待ちたくありません。クライアントからリクエスト全体を送信したいだけです。これを達成する方法について誰かがアイデアを提供できますか?

Chromeで次のことを試しましたが、リクエストが実際に送信されないようです(サーバー側で受信したリクエストをログに記録しています)。

基本的:

var sendRequest = jQuery.ajax({
    url: '/awesomeness.txt',
    dataType : 'json',
    timeout: 2000,
    cache: false,
    success: function(result) {}
});

sendRequest.abort();

また、タイムアウトを 1 に設定しようとしましたが、奇妙なことに、新しいブラウザーからページをロードすると、要求が送信されません (ページを更新すると送信されます)。

4

2 に答える 2

3

簡単に:

jQuery.ajax({
    url: '/awesomeness.txt',
    dataType : 'json',
    timeout: 2000,
    cache: false,
    afterSend: function() {/*run awesome code*/}
    success: function(result) {}
});

// call whatever you want after send
afterSend();

したがって、そのための組み込みのjquery.ajaxイベントはありませんが、直後に関数を呼び出すことができます$.ajax();

于 2012-10-08T21:49:49.470 に答える
-1

YOUR_COOL_FUNCTIONコードブロックの後で呼び出すだけです。

これは、ajaxリクエストがコールバックを使用するため機能します。したがって、実行されたリクエストのために現在の実行をブロックすることはありませんが、リクエストを作成してからコードに移動するため、コードの任意のブロックを配置するのと同じくらい簡単です。このAJAX呼び出しの後。

于 2012-10-08T21:50:43.887 に答える