2012-02-21 38 views
7

Tôi đang sử dụng jquery để làm ajax yêu cầuLàm thế nào để ngăn chặn ajax yêu cầu

$.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

Làm thế nào tôi có thể tự dừng lại yêu cầu ajax cụ thể của tôi?

+1

có thể trùng lặp: http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery –

+0

ok, cảm ơn bạn. Tôi không tìm thấy nó sau khi một số khó khăn googling – tsds

Trả lời

22

Phương pháp $.ajax() trả về một đối tượng mà có thể được sử dụng để làm điều đó:

var xhr = $.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

và sau đó khi bạn muốn dừng theo yêu cầu:

xhr.abort(); 
+1

ajax có thể được ngừng lại từ khi bắt đầu, nhưng một khi nó làm cho nó không thể ngăn chặn nó ... – JIA

+4

@ JIA, bạn có thể hủy bỏ yêu cầu AJAX trong trình duyệt, nhưng tất nhiên nếu nó có đã nhấn máy chủ web, đó là một câu chuyện hoàn toàn khác. Máy chủ web sẽ tiếp tục thực hiện yêu cầu. Chỉ vì trình duyệt đã hủy yêu cầu, máy chủ web sẽ gửi phản hồi đến khoảng trống. –

+0

@DarinDimitrov để nó có nghĩa là nếu một yêu cầu đã được khởi tạo bị hủy bỏ bằng cách sử dụng phương thức '.abort', nó sẽ không được phục vụ ở phía máy khách ... – JIA

4

yêu cầu ajax là HTTP giao dịch một lần làm không thể dừng lại. Bạn có thể ngừng yêu cầu ajax không được bắt đầu nhưng không hủy yêu cầu đã được thực hiện.

+2

Yêu cầu XHR, giống như tất cả các yêu cầu HTTP, có thể bị hủy bỏ trong khi đang thực hiện. Cho dù một thư viện Ajax nào đó cho thấy chức năng này là một vấn đề khác. – GregT

Các vấn đề liên quan