Tôi sử dụng jquery để gửi đến một hành động điều khiển MVC trả về một bảng thông tin. Người dùng của trang kích hoạt điều này bằng cách nhấp vào các liên kết khác nhau.Tại sao gọi abort() trên ajax yêu cầu gây ra lỗi trong ASP.Net MVC (IE8)
Trong trường hợp người dùng quyết định nhấp vào một loạt các liên kết này liên tiếp nhanh chóng, tôi muốn hủy mọi yêu cầu ajax trước đó có thể chưa hoàn tất.
Tôi đã thấy rằng khi tôi làm điều này (mặc dù tốt đẹp của nó từ POV của khách hàng) tôi sẽ nhận được lỗi trên ứng dụng web nói rằng
"The parameters dictionary contains a null entry for parameter srtCol of non-nullable type 'System.Int32'"
Bây giờ bài ajax deffinately đi trong tất cả các các thông số, và nếu tôi không thử và hủy bỏ yêu cầu ajax, nó hoạt động tốt.
Nhưng nếu tôi hủy yêu cầu bằng cách gọi hủy bỏ() trên đối tượng XMLHttpRequest mà ajax() trả về trước khi kết thúc, tôi nhận được lỗi từ ASP.Net MVC.
Ví dụ:
//Cancel any pevious request
if (req)
{
req.abort();
req = null;
}
//Make new request
req = $.ajax({
type: 'POST',
url: "/Myapp/GetTbl",
data: {srtCol: srt, view: viewID},
success: OnSuccess,
error: OnError,
dataType: "html"
});
Tôi đã nhận thấy điều này chỉ xảy ra là IE8. Trong FF nó dường như không cuase một vấn đề.
Có ai biết cách hủy yêu cầu ajax trong IE8 mà không gây ra lỗi cho MVC không?
Cảm ơn bạn đã được trợ giúp.
Tôi nghi ngờ bạn là chính xác. Nhưng tôi không chắc chắn làm thế nào để viết lại mã JS của tôi để OnSuccess được bỏ qua cho các yêu cầu hủy bỏ nhưng chạy cho các yêu cầu không bị hủy bỏ. Ông có thể cho tôi một ví dụ? – user169867
Tôi thích nó. Tôi nghĩ rằng sẽ làm việc. Cảm ơn nhiều! – user169867
Không sao cả! Hy vọng nó hoạt động ra ngoài. – kevingessner