2011-07-15 12 views
4

jQueryのajax投稿があり、POSTで大きなファイルをアップロードしています。私は、送信が進行中の間、ボタンをクリックして、送信をキャンセルする機能をユーザに与えたいと思っています。これどうやってするの ?「進行中」のjquery POSTを停止する方法を教えてください。

+1

ような何かを試すことができますのためにこれは動作するはずです: http://stackoverflow.com/questions/1802936/stop-all-active-ajax-in-jquery –

答えて

0

XMLHTTPRequest.Abort()メソッドについて説明しているthis blog postを見てください。私はそれがあなたが探しているものだと信じています。

2
var xhr = null; 

xhr = $.ajax({ 
    url : 'www.example.com?some-large-call', 
    success : function(responseText) { 
     // some DOM manipulation 
    } 
}); 

$("#cancel").click(function() { xhr.abort() }); 

あなたは

+0

私は.ajaxForm jqueryプラグインを使用します。私はxhrオブジェクトにアクセスする方法を知らない。 –

0

最悪のケースは、あなたがこれを使用することができ、この

var isRequestCancelled = false; 

isRequestCancelled = false; 

$.post({ url:"", success:function{ 
    if(isRequestCancelled){ 
    //Alert the user with cancel message 
    } 
    else{ 
    //Confirm the user 
    } 
} 
}); 

//Show a cancel buttons once you post to server and on cancel click set the global variable. 

$(".cancel").click(function(){ isRequestCancelled = true;}); 
+0

これは "POST"を続行しませんか? – beardhatcode

+0

はい、そうです。私が言ったように、ポストが成功裏に起こった後であっても、最悪の場合を処理することですが、ユーザーはそれをキャンセルします。 – ShankarSangoli

+0

実際には最悪のケースです。サーバーに「取り消し」を送信する必要がある場合があるためです。 – beardhatcode

関連する問題