我目前正在研究jquery中的程序。我的程序在firefox 3.5中工作正常但直到我将浏览器升级到firefox 4.0。从那以后,'parsererror'从未表现出来,这让我头痛不已。
我注意到这是FIRST'parsererror'显示的代码的一部分:
$(document).ready( function() {
...
$.ajaxSetup({
timeout: 10000,
error: function(xhr, msg, e) {
showMessage('HTTP error: ' + JSON.stringify(msg) + '.'); //this is the parsererror
}
});
.
.
})
不仅如此,我的动态标签页不再出现在我的页面中。我注意到每次删除这一行'<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
'时,它会出现,但我的其他jquery元素并不好。我不知道出了什么问题。也许是某种不兼容问题,但我不知道从哪里开始修复。请帮忙。
修改: 这是它返回的json。这应该是我的动态菜单,它会创建你点击的Evry菜单。但这并没有显示出来。
[
{"title": "File","submenus":[
{"title": "Open","submenus":[]},
{ "title": "New", "submenus":[]},
{ "title": "Save as", "submenus":[]},
{ "title": "Save", "submenus":[]}
]},
{ "title": "View","submenus":[]},
{ "title": "viewAll", "submenus":[]},
{ "title": "Close","submenus":[]},
{"title":"jQgrid", "submenus":[]}
]
答案 0 :(得分:2)
来自jQuery Ajax的错误documentation
的描述错误(jqXHR,textStatus,errorThrown)
功能
一个功能 如果请求失败则调用。该 函数接收三个参数: jqXHR(在jQuery 1.4.x中, XMLHttpRequest)对象,一个字符串 描述错误的类型 发生了和一个可选的例外 对象,如果发生了一个。可能 第二个参数的值 (除了null)是“超时”,“错误”, “abort”和“parsererror”。当一个 发生HTTP错误,errorThrown 接收文本部分 HTTP状态,例如“未找到”或 “内部服务器错误。”截至jQuery 1.5,错误设置可以接受一系列功能。每个功能都会 被轮流打电话。注意:这个处理程序 没有调用跨域脚本 和JSONP请求。这是一个Ajax 事件
在您的代码中
JSON.stringify(msg)
查看jQuery文档,您将看到第二个参数是一个字符串,而不是像您期望的那样的JSON对象。解析器正在查看字符串并抛出您正在看到的解析错误。
现在,如果发生错误且对象声称存在错误。 JSON要求名称周围有双引号。所以人们认为:
{
foo : "bar",
color : "red",
num : 1
}
是有效的JSON,但事实并非如此。以下是有效的。
{
"foo" : "bar",
"color" : "red",
"num" : 1
}
答案 1 :(得分:0)
听起来上面的代码工作得很好 - 它告诉你XMLHttpRequest返回错误消息"parsererror"
。您可以通过检查错误函数中的e
变量来了解更多相关信息。但是你提供的代码并没有导致错误,所以我们无法调试它。