在 jquery ajax 中从 JS 端的 JsonResult 获取属性

2023-12-02

我返回以下对象 JsonResult

return new JsonResult
            {
                Data = new { ErrorMessage = message },
                ContentEncoding = System.Text.Encoding.UTF8,
                JsonRequestBehavior = JsonRequestBehavior.DenyGet
            };

如何在 jquery 端从中获取错误消息?

这是我的 jquery ajax 错误委托

error: function (result) {
        alert('error');
        alert(result.ErrorMessage);
    }

但它警告为未定义。我试过result.Data以及结果.消息......全部undefined.

namespace myApp.ActionFilters
{
    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
    public class AjaxException : ActionFilterAttribute, IExceptionFilter
    {
        public void OnException(ExceptionContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAjaxRequest()) return;

            filterContext.Result = AjaxError(filterContext.Exception.Message, filterContext);

            //Let the system know that the exception has been handled
            filterContext.ExceptionHandled = true;
        }

        protected JsonResult AjaxError(string message, ExceptionContext filterContext)
        {
            //If message is null or empty, then fill with generic message
            if (String.IsNullOrEmpty(message))
                message = "Something went wrong while processing your request. Please refresh the page and try again.";

            //Set the response status code to 500
            filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;

            //Needed for IIS7.0
            filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;

            return new JsonResult
            {
                Data = new { ErrorMessage = message },
                ContentEncoding = System.Text.Encoding.UTF8,
                JsonRequestBehavior = JsonRequestBehavior.DenyGet
            };
        }
    }
}

在我的控制器中,我有一个操作来测试这个

 [AjaxException]
    public ActionResult TestErrorHandling(string id)
    {
       if (string.IsNullOrEmpty(id))
        {
            throw new Exception("oh no");
        }
        return Json(new { success = true });
     }

In my js

 id = "";
 $.ajax({
    contentType: 'application/json, charset=utf-8',
    type: "POST",
    url: "/Controller/TestErrorHandling",
    data: JSON.stringify({ id: id }),
    cache: false,
    dataType: "json",

    success: function (result) {
        alert('some error occurred: ' + result.ErrorMessage);


        alert('success!');
    },

    error: function (xhr, ajaxOptions, thrownError) {
        alert('error');
        alert(xhr.ErrorMessage);
    }

    });

问题:如何获取错误委托中的 errorMessage?


如何在 jquery 端从中获取错误消息?

由于您返回的是带有 200 状态代码的 JSON 对象,因此错误回调将永远不会被执行。所以你可以使用success在这种情况下回调:

success: function(result) {
    if (result.ErrorMessage) {
        alert('some error occurred: ' + result.ErrorMessage);
    }
}

或者,如果您希望执行错误处理程序,请确保在控制器操作中设置正确的状态代码:

public ActionResult Foo()
{
    Response.StatusCode = 500;
    return Json(new { ErrorMessage = message });
}

进而:

error: function (jqXHR) {
    var result = $.parseJSON(jqXHR.responseText);
    alert('some error occurred: ' + result.ErrorMessage);
}

您可能还会发现以下答案 useful.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 jquery ajax 中从 JS 端的 JsonResult 获取属性 的相关文章

  • 如何在 jQuery.knob 中添加值后缀

    我有问题jQuery knob http anthonyterrien com knob 我需要添加一个Sufixx至旋钮中的值 例如 我需要一个后缀 数值后 我只是输入数值字段 它会显示 但此时旋钮不会显示状态 它不会显示旋钮状态 但后缀
  • 什么是 jQuery 挂钩和回调?

    我很难概念化 jQuery 中的回调或挂钩到底是什么 它们似乎混为一谈 但我不知道它们之间的区别 根据我从其他有关回调的帖子中了解到的信息 例如this https stackoverflow com questions 4709035 u
  • Typescript + Jquery Ajax + 这个

    我正在将一些 javascript 代码移植到 typescript 中 但遇到了一个问题 我有一个 ajax 调用 它将一个对象作为上下文传递 该对象包含一些回调和一些其他信息 这些信息由成功或错误回调读出 指示成功调用应重定向到的位置
  • 修改现有的yaml文件并添加新的数据和注释

    我最近看到了yaml https github com go yaml yaml tree v3lib 有新版本 V3 与nodes https github com go yaml yaml blob v3 yaml go L348功能
  • 在 MVC 2 编辑器模板中正确注册 JavaScript 和 CSS

    如何在 ASP NET MVC 2 RTM 编辑器模板中正确注册 javascript 块 我所处的具体场景是我想使用Dynach JSCal2 日期时间选择器 http www dynarch com projects calendar
  • 如何使用 JSON.NET 反序列化?

    如何设置 Newtonsoft Json net 将此文本反序列化为 NET 对象 US Hawaii GMT 10 00 Hawaii US Alaska GMT 09 00 Alaska 为了加分 这种结构在Json中叫什么 我尝试寻找
  • 如何在 ASP.NET MVC 5 中实现简单的身份验证

    我有一个带有 SQL Server 数据库的现有项目 带有数据库优先的 EF 工作单元和服务层 我需要添加 ASP NET MVC 项目并使用现有服务来验证用户身份 我发现了不同的复杂决定 我需要在身份中使用我的服务或在没有身份的情况下实现
  • 未捕获的语法错误,无法识别的表达式:[object Object]

    目前正在研究新闻滚动器 请参阅我的现场示例 EXAMPLE http jsfiddle net MrTest dwMfv 5 当我按下一个 上一个箭头时 我收到错误日志Uncaught Syntax error unrecognized e
  • 使用 AJAX 来回发送信息

    使用 post 你可以向服务器发送信息 但是当你需要从服务器接收信息时怎么办呢 信息如何从可以由 php 变量保存的方式变为可以由 javascript 变量保存的方式 反之亦然 这与您的问题更相关 http docs jquery com
  • jQuery 在按键后获取输入值

    我有以下功能 document ready function dSuggest keypress function var dInput input text name dSuggest val console log dInput dDi
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • NServiceBus 3.2 示例问题

    我正在尝试运行 AsyncPages 的 NServiceBus 示例 看起来很简单 从 NServiceBus com 下载最新版本 执行bat文件来安装先决条件 打开解决方案 Press F5 在文本框中输入数字 当我这样做时 我遇到了
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • 识别http链接并创建锚标记

    我正在尝试解析一些字符串 它嵌入了一些 http 链接 我想使用 jquery 在此字符串中动态创建锚标记 然后将它们显示在前端 以便用户可以单击它们 有没有办法做到这一点 Thanks 你可以这样做 function get the st
  • 完整日历 - 向事件对象添加额外属性

    可能是由于我缺乏理解 但我使用 PHP 返回 JSON 字符串来带回事件数据
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • 当 jQuery .remove() 用于删除脚本标签时,它是否会清除加载的 JavaScript?

    正如标题所示 如果我使用以下命令从 DOM 中删除脚本标签 scriptid remove javascript 本身是保留在内存中还是被清除了 或者 我完全误解了浏览器处理 javascript 的方式吗 这是很有可能的 对于那些对我提问
  • 如何使用 jQuery 和“this”捕获更改的表单元素值

    我有以下代码 每当我的 Web 表单中发生元素更改时 该代码都会起作用 我一直在纠结的是如何捕捉表单字段元素 id name and 改变值当更改事件被触发时 谁能帮我解决这个问题吗 Thanks JavaScript

随机推荐

  • JavaScript 中如何四舍五入到小数点后一位?

    你能将 JavaScript 中的数字四舍五入到小数点后一个字符 正确四舍五入 吗 我尝试了 10 round 10 但它在 int 末尾留下了两位小数 Math round num 10 10有效 这是一个例子 var number 12
  • 使用 numpy.frompyfunc 将广播添加到带参数的 python 函数

    从像这样的数组db 这将大约是 1e6 300 and a mask 1 0 1 向量 我将目标定义为第一列中的 1 我想创建一个out由其中相应行组成的向量db匹配mask and target 1 其他地方都是零 db np array
  • google api 机器学习 我可以使用 API KEY 吗?

    出于学习目的 我尝试使用机器学习 ml API https cloud google com ml engine reference rest v1 projects models list 我无法确定是否可以使用 API KEY 而不是
  • 限制表中数据范围的声明性方法

    我想学习一种声明性方法来解决我不时遇到的与独占日期范围相关的数据约束问题 下面是一个简化的示例 我有物品和这些物品的价格 我希望价格的有效日期范围是相互排斥的 没有重叠 据我了解 Oracle 的情况 用户定义的函数不符合使用条件CONST
  • 从 C 到 Java 传递指针变成 NULL

    我正在开发一个适用于 x86 的 Android 应用程序 需要与 C 进行一些集成 我一直在使用 swig JNI 来实现这一点 并且大部分情况都运行顺利 然而 指针给了我一些错误 我的问题是 我能够成功引用模拟器 ARM 中的变量地址
  • 来自索引 URL 的 Angular2 查询参数

    我正在尝试从 Angular2 组件中的 url 获取查询参数 版本 angular2 npm 电子邮件受保护 我正在尝试提取组件中的 id 查询参数并显示它 这是请求 本地主机 8080 index html id 1 boot ts i
  • Oracle SQL 比较日期

    SQL gt select from porder OID BILL ODATE 10 200 06 OCT 13 4 39878 05 OCT 13 5 430000 05 OCT 13 11 427 06 OCT 13 12 700 0
  • 选择十进制形式的浮点数

    我在 PostgreSQL 表中有一个小数字 test CREATE TABLE test r real CREATE TABLE test INSERT INTO test VALUES 0 00000000000000000000000
  • 通过 ACE.OLEDB 从 Excel 进行 sqlbulkcopy 将文本截断为 255 个字符

    使用 SqlBulkCopy 非常直接的导入 string excelConnectionString Provider Microsoft ACE OLEDB 12 0 Data Source filePath Extended Prop
  • 暂存实例还是生产实例?

    服务运行时中是否有任何地方可以告诉我当前是在 暂存 还是 生产 上运行 在生产环境中手动修改配置似乎有点麻烦 当您处于 Prod 或 Staging 状态时 您确实不应该更改配置 暂存区域并非设计为 QA 环境 而只是部署生产之前的等待区域
  • 《Java 8 in Action》提供的演示有误吗?

    这段代码是引用自Java 8 实践 这也在书 11 4 3 中 public Stream
  • JSON.parse 是用什么写的/它是开源的吗?

    PHP 函数是用 C 编写的 如果您愿意 可以查看源代码 例如这里 会话启动源 那么 JavaScript 呢 像 JSON parse 这样的函数是如何实现的 我可以去哪里查看源码 Thanks JSON parse 是原生的 这意味着它
  • Solr DataImportHandler 配置

    我想在 DataImportHandler 的帮助下从 mysql 数据库获取数据 这样我就可以创建索引 现在我已经配置了 Solr 实例 以便它可以在 Tomcat 示例管理页面 上运行 但如果我尝试更改 sorlconfig xml 文
  • 排序数组列表方法很慢

    首先要说的是 我看到了非常相似的问题 但我认为这不是重复的 我需要对字符串数组列表进行排序 其中列表成员的格式为ID NAME以及哪里ID是某个数字并且name一些字符串 我使用的第一个想法很简单 ArrayList
  • 检查用户名是否已存在于数据库 MySQL PHP [重复]

    这个问题在这里已经有答案了 我制作了一个 Registration php 页面 我需要检查用户名是否已在我的数据库中 这样我就不会有 2 个同名的成员 以下是我将用户信息插入数据库的方法 用户名 密码 注册日期等 mysql query
  • 将箭头样式函数转换为“函数”样式

    我有一个这样的函数 const jsonObject a b c const x a b const properties x split const item properties reduce obj prop gt obj obj p
  • C++11:intptr_t/int_ptr_t、intmax_t/int_max_t?

    我正在阅读一些关于 c 11 的文章 我注意到一些关于 int 类型名称的事情 目前 显然该规范只能通过付费才能获得 但二月份的早期草案可在http www open std org jtc1 sc22 wg21 docs papers 2
  • 如何从 calcOpticalFlowFarneback 中提取像素的速度矢量

    我一直在寻找提取两帧中每个像素的速度向量 我使用 opencv 函数作为流程 calcOpticalFlowFarneback Previous Gray Current Gray Optical Flow 0 5 3 15 3 5 1 2
  • 类型“Key”不能用于索引类型“Object”

    尝试用声音类型实现功能性的拨动 但我做错了一些事情 function pluck key Key o Object gt Object Key return object gt object key TS错误 类型 Key 不能用于索引类型
  • 在 jquery ajax 中从 JS 端的 JsonResult 获取属性

    我返回以下对象 JsonResult return new JsonResult Data new ErrorMessage message ContentEncoding System Text Encoding UTF8 JsonReq