【发布时间】:2011-04-28 13:10:16
【问题描述】:
我在 Firefox 中收到以下错误消息:
Error: not well-formed
Source File: http://school/courses.booking.add.php?1287657494723
Line: 1, Column: 1
Source Code:
{"type":"error","message":"You have already booked this course."}
如您所见,输出是有效的 JSON(它由 PHP 的 json_encode() 函数创建)。它与application/json MIME 类型一起提供。我认为错误可能与解析有关:
eval: function(json) {
return eval('(' + json + ')');
}
但即使我不解析字符串,只是简单地提醒返回的 JSON 响应,错误仍然会出现。
相关问题:"not well-formed" error in Firefox when loading JSON file with XMLHttpRequest。他的解决方案是修复 MIME 类型。我的已经准确了,所以肯定是别的东西。
【问题讨论】:
-
你有没有使用任何 FF4 + FireBug 的 beta 版本?我遇到了一些奇怪的问题......
-
FF3.6.11 + FireBug。不过,我为此使用了 Web 开发人员工具栏中的错误收集。我应该比现在更多地使用 FireBug。
-
如果你不从 API 中提取数据,而是从变量
var myJSONObject = {"type":"error","message":"You have already booked this course."}中读取数据,然后尝试eval(myJSONObject)是否仍然会出现同样的错误? -
如果我从一个对象中读取而不对其进行评估:
var ret = {"type":"error","message":"You have already booked this course."};。如果我将它写为文本字符串并对其进行评估,它可以工作:var ret = '{"type":"error","message":"You have already booked this course."}'; ret = ajax.eval(ret);. -
它实际上在 Firefox 和我测试过的所有其他浏览器中都能完美运行。所以我可以放心地忽略错误消息。不过,很高兴知道是什么原因造成的。
标签: javascript json