Dob*_*eer 3 json facebook cross-domain
我遇到了这个错误.该应用程序似乎工作正常,但它导致Firebug停止脚本.
JSON.parse: unexpected character
Line 9 (all.js)
Run Code Online (Sandbox Code Playgroud)
有问题的行看起来像这样:
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;}});
Run Code Online (Sandbox Code Playgroud)
我相信Firefox的内置JSON解析器会在该行定义的解析方法中引发异常.传递给解析的字符串如下所示:
"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"
Run Code Online (Sandbox Code Playgroud)
显然这不是有效的JSON字符串,因此解析错误.
该字符串来自以某种方式使用xd_proxy.php传递的事件,上面的字符串是该iframe的URL上的哈希值.
我搜索了一下,没有看到任何有关此错误的有用信息.
事实证明,这个异常是由调用它的javascript代码正确捕获和处理的,但是因为我将Firebug设置为"中断所有错误",所以无论是否捕获到该异常,它都会停止执行.
因此,解决方案实际上是关闭Firebug中的"中断所有错误",这根本不是Facebook脚本的问题.
| 归档时间: |
|
| 查看次数: |
4388 次 |
| 最近记录: |