我如何获得jQuery的HTTP状态码?
我想检查一个页面是否返回状态码401,这可能吗?
这是我的尝试,但它只返回0。
$.ajax({ url: "http://my-ip/test/test.php", data: {}, complete: function(xhr, statusText){ alert(xhr.status); } });
这可能与jQuery $.ajax()
方法
$.ajax(serverUrl, { type: OutageViewModel.Id() == 0 ? "POST" : "PUT", data: dataToSave, statusCode: { 200: function (response) { alert('1'); AfterSavedAll(); }, 201: function (response) { alert('1'); AfterSavedAll(); }, 400: function (response) { alert('1'); bootbox.alert('<span style="color:Red;">Error While Saving Outage Entry Please Check</span>', function () { }); }, 404: function (response) { alert('1'); bootbox.alert('<span style="color:Red;">Error While Saving Outage Entry Please Check</span>', function () { }); } }, success: function () { alert('1'); }, });
第三个参数是XMLHttpRequest对象,所以你可以做任何你想要的。
$.ajax({ url : 'http://example.com', type : 'post', data : 'a=b' }).done(function(data, statusText, xhr){ var status = xhr.status; //200 var head = xhr.getAllResponseHeaders(); //Detail header info });
使用错误callback。
例如:
jQuery.ajax({'url': '/this_is_not_found', data: {}, error: function(xhr, status) { alert(xhr.status); } });
将提醒404
我想你也应该实现$ .ajax方法的错误函数。
错误(XMLHttpRequest,textStatus,errorThrown)函数
如果请求失败,则调用该函数。 该函数传递三个参数:XMLHttpRequest对象,一个描述发生的错误types的string,以及一个可选的exception对象(如果发生的话)。 第二个参数(除了null)的可能值是“超时”,“错误”,“未修改”和“parsing错误”。
$.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); } });
$.ajax({ url: "http://my-ip/test/test.php", data: {}, error: function(xhr, statusText, errorThrown){alert(xhr.status);} });
我发现这个解决scheme可以简单地使用状态码检查服务器响应代码 。
例如:
$.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); } });