在Chrome和IE上的Facebook Canvas应用程序中使用上传“Uncaught Call to StartUpload failed”

时间:2012-10-26 10:03:47

标签: javascript jquery facebook flash uploadify

我在Facebook上的画布应用中实现了Uploadify jQuery plugin的标准Flash版本。

上传在Firefox中运行得非常好。但是,当我尝试在Chrome或IE中启动上传时,它会在控制台中显示此消息:

  

Uncaught Call to StartUpload failed

对于那些不熟悉Facebook画布应用程序的人来说,它是在Facebook的iframe中运行的PHP页面,这可能会导致这个问题 - 尽管它在框架外运行时也不起作用。


我也在Chrome控制台中收到了这些错误:

  

Unsafe JavaScript attempt to access frame with URL https://apps.facebook.com/[app name]/[page name]/ from frame with URL https://[app domain]/[page path]. The frame being accessed set 'document.domain' to 'facebook.com', but the frame requesting access did not. Both must set 'document.domain' to the same value to allow access.


有什么想法可能会发生什么?我已经尝试为Flash设置 crossdomain.xml 但没有成功。

3 个答案:

答案 0 :(得分:1)

根据另一个帖子Changing document.domain to completely other domain,可能会将域名更改为当前域的后缀。

如果可以更改“[app域名]”,您可以尝试将[app域名]更改为“https://[app域名.apps.facebook.com /”,并在iframe为iframe页面时运行javascript装载

document.domain = 'facebook.com';

但不确定是否存在添加其他域作为后缀的问题(合法吗?)。

答案 1 :(得分:1)

我很久以前在facebook和crossdomain上遇到过一个问题,你试过吗

header('P3P: CP="CAO PSA OUR"');

在你的php文件上?

答案 2 :(得分:1)

1.尝试在您的api设置中编辑您的网址,如name_api_to_download.domain.com或domain.com,并仅使用ssl子网域或域名

2.使用ajax请求(post或get)优先级来下载文件而不是iframe,因为你使用的是父iframe api,而且它不可访问

3.-在name_api_to_download中使用有效的标头(作为MIME类型为application / pdf)