2011-06-10 82 views
0

我有我访问远程使用<cfajaxproxy>的方法。此方法返回JSON与几个属性。其中一个属性是一串HTML,当这个字符串变得很长时,Firefox会抛出一个未捕获的异常。它在IE9中正常工作。Firefox的错误JSON解析与大型字符串

在该错误时引发的确切大小是267897个字节,如在萤火虫报道的整个响应身体。如果响应正文是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

Line在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"} 
+0

具有u使用'cfdiv'加载了“HTML的字符串”为主体内容,而不是作为一种解决方法考虑? – Henry 2011-06-10 16:15:25

+0

谢谢,亨利。我得看看'cfdiv'。在这种情况下,更多的事情不仅仅是填充div内容,所以我不确定它是否合适。 – Yisroel 2011-06-10 16:39:06

回答

0

会发生错误使用Firebug关闭? SO上的其他人有一个奇怪的错误,它是由Firebug造成的。

+0

是的。没有安装Firebug的普通用户会遇到错误。 – Yisroel 2011-06-12 02:03:04

1

的错误而做了ColdFusion.JSON.decode(JSONstring)我有同样的错误。 我的解决方案是使用不同的JS库。 MooTools为我工作得很好。 JSON.decode(JSONstring)。只要确保删除了字符串开头处的coldfusion附加的JSON前缀。 (是否适用于你)

另外,您可以编辑cfajax.js删除测试。毕竟,你应该回到你的应用摆在首位的工作,如果你确实需要验证您的JSON字符串你能做到这一点的服务器端有效的JSON ...

我希望这有助于。