我正在尝试将状态代码返回到我的网页。 但是我回到了200而不是我的控制器回来的201,这意味着我的警报没有显示。
任何想法我做错了什么?
$.ajax({
url: "/Home/Request/",
type: 'POST',
data: { model: JSON.stringify(model) },
cache: false,
crossDomain: true,
async: false,
dataType: 'json',
statusCode: {
201: function(data) {
alert(data);
},
501: function(data) {
alert('Opps an error occurred.');
}
},
error: function(event) {
alert('Error' + event);
}
});
//控制器
[HttpPost]
public async Task<JsonResult> Request(string model)
{
//Do Stuff
return Json((int)response.StatusCode, JsonRequestBehavior.AllowGet); <-- response.StatusCode = 201
}
答案 0 :(得分:3)
你需要像这样从控制器发送状态代码。我发送HttpStatusCode.OK,这意味着200
Response.StatusCode = (int)HttpStatusCode.OK;
return Json((int)Response.StatusCode, JsonRequestBehavior.AllowGet);
在ajax电话中
statusCode: {
200: function (data) {
alert('200');
},
501: function (data) {
alert('Opps an error occurred.');
}
},
答案 1 :(得分:2)
JsonResult没有直接设置HttpStatus的属性或方法。您必须单独设置状态代码 -
Response.StatusCode = (int)response.StatusCode
答案 2 :(得分:0)
$.ajax({
url: "/Home/Request/",
type: 'POST',
data: { model: JSON.stringify(model) },
cache: false,
crossDomain: true,
async: false,
dataType: 'json',
sucess: function(data) {
alert(data);
}
,
error: function(event) {
alert('Error' + event);
}
});
状态是从json返回的数据