ajax statusCode 的 jQuery 默认值
Posted
技术标签:
【中文标题】ajax statusCode 的 jQuery 默认值【英文标题】:jQuery default for ajax statusCode 【发布时间】:2012-05-30 11:12:46 【问题描述】:据我了解,使用 ajax 处理错误结果的一种可能性是:
$.ajax(
url: someUrl,
type: 'POST',
success: function(data) ,
error: function(jqXHR, exception)
if (jqXHR.status === 0)
alert('Not connect.\n Verify Network.');
else if (jqXHR.status == 404)
alert('Requested page not found. [404]');
else if (jqXHR.status == 500)
alert('Internal Server Error [500].');
else if (exception === 'parsererror')
alert('Requested JSON parse failed.');
else if (exception === 'timeout')
alert('Time out error.');
else if (exception === 'abort')
alert('Ajax request aborted.');
else
alert('Uncaught Error.\n' + jqXHR.responseText);
);
或使用statusCode
使其更具可读性:
$.ajax(
url: someUrl,
type: 'POST',
statusCode:
200: function(data)
:
:
,
401: function()
:
:
,
:
:
我的问题是:
是否可以使用statusCode
并为其设置默认的失败?
【问题讨论】:
【参考方案1】:不在 statusCode 参数中。但这是因为如果你想抓住一切,这是一种更好(更精简)的方式:
complete: function(jqXHR, textStatus)
switch (jqXHR.status)
case 200:
alert("200 received! yay!");
break;
case 404:
alert("404 received! boo!");
break;
default:
alert("I don't know what I just got but it ain't good!");
【讨论】:
太好了,谢谢!真的很干净和简单。只是对于那些将要使用它的人,我会补充一点,以便从您需要使用data = jQuery.parseJSON(jqXHR.responseText);
的请求中获取 json以上是关于ajax statusCode 的 jQuery 默认值的主要内容,如果未能解决你的问题,请参考以下文章
在 Firefox 的 jQuery $ajax 调用中使用 xhrFields: withCredentials: true 时的状态码 = 0