[英]How to get data responseJSON when ajax request returns 4xx?
I have this Ajax request 我有这个Ajax请求
$.ajax({
url: 'Default.aspx/CreateNewCase',
data: JSON.stringify(
{id: ID }
),
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data, status) {
//when server returns 200
loadCase(ID, data);
},
error: function (data) {
//when server returns 4xx. For example 409
if(data.status == "409")
{
var newData = data.responseJSON;
//error newData is undefined
loadCase(ID, newData);
}
}
});
}
My WebMethod will always return an object whether the result is 200 or 4xx. 无论结果是200还是4xx,我的WebMethod都会始终返回一个对象。 On ajax.success, it returns a JSON object data.
在ajax.success上,它返回一个JSON对象数据。 However on ajax.error, I cannot get the data.responseJSON.
但是在ajax.error上,我无法获取data.responseJSON。
I have read somewhere that JQuery prevents data to be read after an error. 我读过某个地方,JQuery阻止在发生错误后读取数据。 I have tried with .fail and .complete too, but I still cannot get the value when Ajax request returns 4xx.
我也尝试使用.fail和.complete,但是当Ajax请求返回4xx时,我仍然无法获取该值。
How do I resolve this? 我该如何解决?
So I finally found the answer. 所以我终于找到了答案。 I have to add this parameter inside
<system.webServer>
on the web.config: 我必须在web.config的
<system.webServer>
添加此参数:
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
<clear/>
</httpErrors>
</system.webServer>
Then you can access your data like this: 然后,您可以像这样访问数据:
error: function (data, status) {
if (data.status == "409") {
var myData = data.responseJSON;
//do stuff here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.