简单的 JsonResult 在 Jquery ajax 方法上返回 parsererror
Posted
技术标签:
【中文标题】简单的 JsonResult 在 Jquery ajax 方法上返回 parsererror【英文标题】:Simple JsonResult returns parsererror on Jquery ajax method 【发布时间】:2011-08-14 12:57:30 【问题描述】:我正在使用带有 jquery 1.5.2 的 asp.net mvc2。我假装是在我的控制器中对返回 json 数据的特定方法进行客户端调用。
实际上,我对服务器的客户端调用正在运行,但问题是 jquery 无法识别返回的 json。
我不明白我做错了什么!有人可以帮我解决这个问题吗?
控制器方法:
<HttpPost()> _
Function DoStuff(ByVal id As Integer) As JsonResult
Dim retval As JsonResult = Nothing
retval = Json(New xpto With .P1 = "P1Value")
Return retval
End Function
JQuery Ajax 调用:
$.ajax(
url: "/DoStuff/5",
type: "POST",
dataType: "json",
async: false,
success: function(data, textStatus, jqXHR)
alert(textStatus);
,
error: function(jqXHR, textStatus, errorThrown)
alert(textStatus);
);
处理错误方法时的值:
errorThrown: jQuery1520029581770420782693_1303980789842 未被调用
文本状态:解析器错误
jqXHR.responseText = ""P1":"P1Value""
【问题讨论】:
看不到您的代码有任何问题。所有浏览器都会出现这种情况吗?我已经测试了这段代码,它运行良好。 我在 IE8 和 FireFox4 上测试过(两者结果相同) 【参考方案1】:问题不在那个代码上,它工作正常,问题是由标记上的 Sctipt 标记顺序生成的(验证)
错误:
<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>
右:
<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
【讨论】:
以上是关于简单的 JsonResult 在 Jquery ajax 方法上返回 parsererror的主要内容,如果未能解决你的问题,请参考以下文章
Response.StatusDescription 没有从 JsonResult 发送到 jQuery
关于怎么用jQuery来获取mvc中返回值为JsonResult的值
加载 ASP.Net MVC JSONResult jQuery DataTables