Firefox错误解析大字符串的JSON

时间:2011-06-10 16:04:34

标签: json firefox coldfusion

我有一个使用<cfajaxproxy>远程访问的方法。此方法返回带有一些属性的JSON。其中一个属性是一串HTML,当这个字符串变得很长时,Firefox会抛出一个未被捕获的异常。它在IE9中运行良好。

抛出错误的确切大小为267,897字节,如Firebug中针对整个响应正文所报告的那样。如果响应主体是267,896字节,它可以正常工作。

以下是Firebug报告的错误

uncaught exception: [Exception... "'SyntaxError: parseJSON' when calling method: [nsIDOMEventListener::handleEvent]"  nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "JS frame :: chrome://firebug/content/spy.js :: callPageHandler :: line 744"  data: no]

http://shop.discountsurgical.com/CFIDE/scripts/ajax/package/cfajax.js 797行

cfajax.js中的第797行测试有效json的响应

if(_492.test(json)){

将_492定义为此正则表达式

var _492=/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;

以下是回复的示例(我已将其中大部分删除)

{"content":" 1 2 34 <div id=\"fixedRight\"> <div id=\"toolbox\">     <div class=\"text\">Tools<\/div>
...
<\/script> ","destinationDiv":"main"}

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

在执行ColdFusion.JSON.decode(JSONstring)时遇到了同样的错误。 我的解决方案是使用不同的JS库。 MooTools对我来说很好。 JSON.decode(JSONstring)。只需确保删除coldfusion在字符串开头附加的JSON前缀。 (如果它适用于你)

或者,您可以编辑cfajax.js以删除测试。毕竟你应该返回有效的JSON,让你的应用程序首先工作,如果你确实需要验证你的json字符串,你可以在服务器端做...

我希望这会有所帮助。

答案 2 :(得分:0)

Firebug关闭时是否出现错误? SO上的其他人有一个奇怪的错误,它是由Firebug引起的。