gpt4 book ai didi

javascript - 使 $.ajax 将响应代码 40x 视为成功

转载 作者:行者123 更新时间:2023-11-29 15:31:05 24 4
gpt4 key购买 nike

如果 HTTP 状态代码在 200 和 299 范围内或等于 304,jQuery 将执行函数“成功”。但是,例如,对于我需要的代码 401,jQuery 认为 Ajax 调用成功,并将响应评估为 JSON 并执行函数“成功”。

问题是这种行为是硬编码在方法“完成”中的:

// Determine if successful
isSuccess = status> = 200 && status <300 || === status 304;

我真的不知道该怎么做。

编辑:

这是我目前拥有的:

var options = {
url: '',
type: 'POST',
data: {},
success: function(response, status){},
error: function(res, status, error){
notify("Une erreur s'est produite !", "danger");
},
complete: function(res, status){}
};
$.extend(options, opts);
var dataString = '';
$.each(options.data, function(key, value){
dataString += ((dataString.length > 0) ? '&' : '') + encodeURIComponent(key) + '=' + encodeURIComponent(value)
});
$.ajax({
url: site_url + options.url,
type: options.type,
data: dataString,
dataType: 'json',
statusCode: {
401: function() {
setTimeout(function(){
location.reload();
}, 2000);
}
},
success: function(response, status){
if (response.response.result.status == 'ok'){
options.success(response, status);
} else {
if ('message' in response.response.result){
notify(response.response.result.message, "danger");
} else if (response.response.errors.length > 0) {
notify(response.response.errors[0], "danger");
}

}
},
error: options.error,
complete: options.complete
});

我希望根据提供的数据类型(仅适用于“成功”方法)解析答案,并且在代码 401 的情况下,处理与包含正确 JSON 的其他响应相同代码,除了进一步的说明。

我认为 jQuery 无法更改指示请求失败的代码是错误的。不管怎样,响应的内容可能很重要,需要特殊处理。对于一个完整的网页,浏览器仍然显示服务器返回的内容以防出错。

最佳答案

与其尝试覆盖“成功”回调,不如在“错误”回调中进行函数调用,当然是在检查特定错误发生之前。

error: function(a, b, c){
if(a.status == 401){
// Your custom function call / code.

}
}

关于javascript - 使 $.ajax 将响应代码 40x 视为成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com