首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AJAX错误作为成功返回。

AJAX错误作为成功返回。
EN

Stack Overflow用户
提问于 2016-05-12 13:00:07
回答 2查看 1.4K关注 0票数 0

AJAX错误将作为成功返回。如何从ASP.NET MVC返回JSON错误?你能告诉我我做错了什么吗?谢谢。

代码语言:javascript
运行
复制
[HttpPost]
    public JsonResult Register(int EventID)
    {
        try
        {
            // code
            return Json(new { success = true, message = "Thank you for registering!" });
        }
        catch (Exception ex)
        {
            return Json(new { success = false, message = ex.Message });
        }
    }


                $.ajax({
                    url: "@Url.Action("Register", "Home")",
                    type: "post",
                    dataType: "json",
                    contentType: "application/json",
                    data: JSON.stringify(postData),
                    success: function(data) {
                    },
                    error: function (data) {
                    }
                });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-12 13:04:00

只有当HTTP不是error时,才会执行HTTP 200 Ready函数。您将处理服务器端的错误并返回适当的响应,这将由success函数在AJAX调用中获取。相反,在JSON中使用status变量并在客户端处理它:

代码语言:javascript
运行
复制
success: function(data) {
  if (typeof data == "string")
    data = JSON.parse(data);
  if (data.success) {
    // Code if success.
  } else {
    // Code if error.
  }
},

文档 (向下滚动到error部分):

如果请求失败将被调用的函数。该函数接收三个参数: jqXHR (在jQuery 1.4.x中,XMLHttpRequest)对象,一个描述所发生错误类型的字符串,以及一个可选的异常对象(如果发生的话)。除了null之外,第二个参数的可能值是"timeout""error""abort""parsererror"。当发生HTTP错误时,errorThrown接收HTTP状态的文本部分,如"Not“或"Internal”,到jQuery 1.5时,error设置可以接受一个函数数组。每个函数将依次调用。注意:这个处理程序不需要跨域脚本和跨域JSONP请求。这是一个Ajax事件

票数 2
EN

Stack Overflow用户

发布于 2016-05-12 13:09:45

Ajax 错误方法只有当在服务器端得到黄色屏幕错误时才会被击中。在您的场景中,您正在使用try处理错误并返回一个有效的响应。因此,这不是一个错误,而是一个有效的响应。如果要显示来自服务器的实际错误消息,则可以使用success 属性来确定响应是成功还是错误,这类似于Praveen在其答复中已经发布的内容。

代码语言:javascript
运行
复制
success: function(data) { 
  if (data.success) {  //as you are passing true/false from server side.
    // Code if success.
  } else {
    // Code if error.
  }
},
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37187699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档