我在另一台主机上有一个上传脚本,在用Ajax
上传远程文件后,我调用了这样一个函数:
echo '<script language="javascript" type="text/javascript">window.top.window.stopUpload('.$result.' , \'res2\' , uploaded , dkey);</script>';
主页面中的stopUpload
功能应该运行并做一些事情(显示图片和......)
但我得到权限被拒绝错误
Error: Permission denied to access property "stopUpload"
提示想象一下,stopUpload
中有pageA
个功能,我用ajax调用send文件上传到另一个名为pageB
的主机页面我有一个pageB中的stopUpload
函数应在上传完成后在pageA上运行,但面对上述错误...
我可以远程调用另一个页面中的javascript函数吗?
感谢。
答案 0 :(得分:3)
您可能违反了Same Origin Policy。
只有Iframe
属于同一来源时,Protocol (http/https)
才能访问父窗口内容。
原点由domain name(example.com
,port(default 80)
和document.domain=domain.com
组成。如果这些中的任何一个不同,那么从不同的起源考虑站点。如果您能够修改这两个站点的内容,则可以手动设置facebook.com and google.com can never be compatible
。之后你就不会收到错误。
<强> #Edit 强>
两个站点至少应具有共同的超级域,以便手动域设置起作用。
例如,docs.google.com and developer.google.com can be compatible
因为他们的超级域名不同。
然而super domain google.com
因为他们有document.domain=google.com
的共同点。
他们都必须在脚本标记中声明import javax.swing.JFrame;
public class RunApp {
public static void main(String[] args) {
JFrame mainFrame = new MyPanel();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
mainFrame.setVisible(true);
}
}
。