当文件准备好我已经设置
$.ajaxSetup({
"error": function (XMLHttpRequest, textStatus, errorThrown) {
if(XMLHttpRequest.status == 403) {
display_modal( 'Please login to continue.', 'Session in closed.');
//XMLHttpRequest.abort();
}
}
});
防止来自未经身份验证的用户的 ajax 请求。
但在特定视图中,当发出 POST/GET 请求时,我有
var posting = $.post(
post_url,
$("#" + form).serialize(),
function(data) {
packet = data;
},
'json'
);
posting.done(function() {
form_post_response_function(e, packet);
});
posting.fail(function() {
var packet = {};
packet.data = {};
packet.data.type = "Ajax Post Fail";
packet.status = -200;
packet.statusMessage = "ERROR";
form_post_response_function(e, packet);
});
我期待着posting.fail(function() {
而getting.fail(function() {
不是被召唤。但它们是,所以所有的流程都进行了,它以另一个与 403 消息重叠的模式结束。
如果没有 raw ,我怎样才能避免这种情况$.ajax
?如何在错误捕获处停止 JQuery 流?
最终代码
posting.fail(function(jqXHR, textStatus, errorThrown) {
if(jqXHR.status != 403) {
var packet = {};
packet.data = {};
packet.data.type = "Ajax Post Fail";
packet.status = -200;
packet.statusMessage = "ERROR";
form_post_response_function(e, packet);
} else {
// event also can be accessed here
$(get_target(e)).button('reset');
}
});
它轻轻地停了下来。看起来不错。