我在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 但没有成功。
答案 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)