Facebook 我可以纠正错误吗?“;JSON.parse:意外字符;

Facebook 我可以纠正错误吗?“;JSON.parse:意外字符;,facebook,json,cross-domain,Facebook,Json,Cross Domain,我遇到了这个错误。该应用程序似乎工作正常,但它会导致Firebug停止脚本 JSON.parse: unexpected character Line 9 (all.js) 这条线看起来像这样: FB.provide('JSON',{stringify:function(a){if(window.Prototype&&Object.toJSON){return Object.toJSON(a);}else return JSON.stringify(a);},par

我遇到了这个错误。该应用程序似乎工作正常,但它会导致Firebug停止脚本

   JSON.parse: unexpected character
   Line 9 (all.js)
这条线看起来像这样:

FB.provide('JSON',{stringify:function(a){if(window.Prototype&&Object.toJSON){return Object.toJSON(a);}else return JSON.stringify(a);},parse:function(a){return JSON.parse(a);},flatten:function(c){var a={};for(var b in c)if(c.hasOwnProperty(b)){var d=c[b];if(null===d||undefined===d){continue;}else if(typeof d=='string'){a[b]=d;}else a[b]=FB.JSON.stringify(d);}return a;}});
"cb=f49f4551da8c7e&origin=http%3A%2F%2Flocalhost%3A9292%2Ff3726c758943f5&relation=parent&transport=postmessage&frame=f2b4bb038098548&code=2.AQ...fU&signed_request=_7hf...E3OCJ9&access_token=AAADj6D4s...ZDZD&expires_in=6650"
我相信这个异常是由Firefox的内置JSON解析器引发的,在该行定义的解析方法中。传递给parse的字符串如下所示:

FB.provide('JSON',{stringify:function(a){if(window.Prototype&&Object.toJSON){return Object.toJSON(a);}else return JSON.stringify(a);},parse:function(a){return JSON.parse(a);},flatten:function(c){var a={};for(var b in c)if(c.hasOwnProperty(b)){var d=c[b];if(null===d||undefined===d){continue;}else if(typeof d=='string'){a[b]=d;}else a[b]=FB.JSON.stringify(d);}return a;}});
"cb=f49f4551da8c7e&origin=http%3A%2F%2Flocalhost%3A9292%2Ff3726c758943f5&relation=parent&transport=postmessage&frame=f2b4bb038098548&code=2.AQ...fU&signed_request=_7hf...E3OCJ9&access_token=AAADj6D4s...ZDZD&expires_in=6650"
显然,这不是一个有效的JSON字符串,因此出现了解析错误

该字符串来自使用xd_proxy.php交付的事件,上面的字符串是该iframe的URL上的散列


我搜索了一段时间,没有看到任何关于此错误的有用信息。

结果表明,调用它的javascript代码正确捕获并处理了此异常,但因为我将Firebug设置为“在所有错误时中断”,所以无论是否捕获该异常,它都会停止执行


因此,修复方法实际上是关闭Firebug中的“所有错误中断”,Facebook脚本根本没有问题。

在all.js中重新格式化javascript代码后,代码似乎是为了捕获此异常并使用querystring样式的解析器重试。因此,看起来这个错误应该是非致命的,应该被代码捕获。似乎萤火虫不必要地停在这里了。