【发布时间】:2011-01-07 22:37:26
【问题描述】:
我正在使用 jQuery.ajax(...) 从 ASP.NET MVC 服务中检索 JSON 数据。当服务器遇到异常时,我将 400 Bad Request 状态发送回客户端并将我的异常作为 JsonResult 发送:
Response.StatusCode = 400;
return Json(new { ex.Message, ex.StackTrace });
这是我的 jQuery 代码:
$.ajax(
{
type: "POST",
url: deleteUrl,
dataType: "json",
data:
{
dataItems: dataItems,
toJSON: true
},
success: function(msg)
{
alert(msg[i].dataItem);
},
error: function(request, status, error)
{
alert(request.responseText);
}
});
我的 ASP.NET 代码将我发送到我的 JavaScript 代码的错误部分,错误块只允许我读取 request.responseText 而不能处理从服务器返回的对象。
现在,我不想在 json_parse 之类的东西中添加另一个 JavaScript 包含并简单地反序列化我的异常,我想简单地利用 jQuery 使用的同一个 JSON 解析器,尽管我找不到很容易找到关于它。
有人能指出正确的方向吗?
【问题讨论】:
-
我在 Rick Strahl 的博客上发现了一篇帖子 (west-wind.com/weblog/posts/324917.aspx),它解释说:“请注意,ajaxJSON 函数需要 JSON 编码。jQuery 没有任何原生 JSON 编码功能(这似乎是一个很大的遗漏) , 但可能这样做是为了保持较小的占用空间)。但是有许多可用的 JSON 实现。上面我使用 Douglas Crockford 的 JSON2.js 文件将参数对象映射序列化为 JSON。"我以为我已经阅读了 jQuery 1.4 中的更改...
-
改变的是 jQuery 现在将使用
JSON.parse而不是eval(如果可用)。 jQuery 从未提供(并且仍然不提供)对 JSON 序列化 的 OOTB 支持。 -
@Crescent,应该作为答案给出,而不是评论。
-
@Cheeso:这不是问题的答案。
标签: javascript jquery serialization json