Ajax ASP.net MVC状态响应

时间:2016-10-05 15:31:35

标签: jquery ajax asp.net-mvc

我正在尝试将状态代码返回到我的网页。 但是我回到了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
    }

3 个答案:

答案 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返回的数据