如何使用 jQuery 获取 HTTP 状态代码?
我想检查页面是否返回状态代码 401。这可能吗?
这是我的尝试,但它只返回 0。
$.ajax({
url: "http://my-ip/test/test.php",
data: {},
complete: function(xhr, statusText){
alert(xhr.status);
}
});
I want to check if a page returns the status code 401. Is this possible?
Here is my try, but it only returns 0.
$.ajax({
url: "http://my-ip/test/test.php",
data: {},
complete: function(xhr, statusText){
alert(xhr.status);
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(9)
脸赞2024-09-10 19:42:05
我认为您还应该实现 $.ajax 方法的错误函数。
错误(XMLHttpRequest,文本状态,
错误抛出)函数请求时调用的函数
失败。该函数传递了三个
参数: XMLHttpRequest 对象,
描述错误类型的字符串
发生的情况和可选的
异常对象(如果发生)。
第二个的可能值
参数(除了空)是“超时”,
“错误”、“未修改”和
“解析器错误”。
$.ajax({
url: "http://my-ip/test/test.php",
data: {},
complete: function(xhr, statusText){
alert(xhr.status);
},
error: function(xhr, statusText, err){
alert("Error:" + xhr.status);
}
});
回忆凄美了谁2024-09-10 19:42:05
我找到了这个解决方案,您可以简单地,
使用状态代码检查服务器响应代码。
例子 :
$.ajax({
type : "POST",
url : "/package/callApi/createUser",
data : JSON.stringify(data),
contentType: "application/json; charset=UTF-8",
success: function (response) {
alert("Account created");
},
statusCode: {
403: function() {
// Only if your server returns a 403 status code can it come in this block. :-)
alert("Username already exist");
}
},
error: function (e) {
alert("Server error - " + e);
}
});
闻呓2024-09-10 19:42:05
我将 jQuery Ajax 封装到一个方法中:
var http_util = function (type, url, params, success_handler, error_handler, base_url) {
if(base_url) {
url = base_url + url;
}
var success = arguments[3]?arguments[3]:function(){};
var error = arguments[4]?arguments[4]:function(){};
$.ajax({
type: type,
url: url,
dataType: 'json',
data: params,
success: function (data, textStatus, xhr) {
if(textStatus === 'success'){
success(xhr.code, data); // there returns the status code
}
},
error: function (xhr, error_text, statusText) {
error(xhr.code, xhr); // there returns the status code
}
})
}
用法:
http_util('get', 'http://localhost:8000/user/list/', null, function (status_code, data) {
console(status_code, data)
}, function(status_code, err){
console(status_code, err)
})
星2024-09-10 19:42:05
我在使用 ajax + jQuery v3 从 JSON API 获取响应状态代码和数据时遇到了重大问题。 jQuery.ajax 仅在状态成功时才解码 JSON 数据,并且还会根据状态代码交换回调参数的顺序。呃呃。
解决这个问题的最佳方法是调用 .always
链方法并进行一些清理。这是我的代码。
$.ajax({
...
}).always(function(data, textStatus, xhr) {
var responseCode = null;
if (textStatus === "error") {
// data variable is actually xhr
responseCode = data.status;
if (data.responseText) {
try {
data = JSON.parse(data.responseText);
} catch (e) {
// Ignore
}
}
} else {
responseCode = xhr.status;
}
console.log("Response code", responseCode);
console.log("JSON Data", data);
});
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这可以通过 jQuery
$.ajax()
方法实现this is possible with jQuery
$.ajax()
method