从另一个站点远程调用javascript函数

时间:2016-03-21 18:56:50

标签: javascript php ajax function remote-access

我在另一台主机上有一个上传脚本,在用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函数吗?

感谢。

1 个答案:

答案 0 :(得分:3)

您可能违反了Same Origin Policy

只有Iframe属于同一来源时,Protocol (http/https)才能访问父窗口内容。 原点由domain name(example.comport(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); } }