通过JavaScript进行异步跨域POST请求?

时间:2009-01-21 21:08:57

标签: javascript ajax cross-domain

我可以创建一个表单并使用它来对任何站点发出POST请求,事情是FORM方法不是异步的,我需要知道页面何时完成加载。我尝试使用带有表单的iframe来解决这个问题,但没有成功。

有什么想法吗?

修改

不幸的是我无法控制响应数据,它从XML,json变为简单文本。

5 个答案:

答案 0 :(得分:11)

您可以捕获onload的{​​{1}}事件。将您的iframe定位到iframe并听取onload。您将无法访问iframe的内容,只能访问事件。

尝试这样的事情:

form

脚本块:

<iframe id='RS' name='RS' src='about:blank' onload='loaded()'></iframe>

<form action='wherever.php' target='RS' method='POST'>...</form>

答案 1 :(得分:2)

如果您想要发出跨域请求,您应该进行JSON调用或使用服务器端代理。服务器端代理很容易设置,不确定为什么人们会这么做。在其中设置规则,以便人们不能使用代理来请求其他事情。

答案 2 :(得分:1)

如果从跨域帖子返回的数据是JSON,那么您可以动态添加指向返回数据的URI的脚本标记。浏览器将加载该“脚本”,然后您可以从其他JavaScript访问。

答案 3 :(得分:0)

YUI3IO对象提供了跨域请求,但是它使用嵌入页面的小型Flash控件来实现。

虽然有一些工作涉及来自JavaScript的安全跨域请求,但此时,您需要使用Flash或Silverlight等插件作为发出请求的桥梁。

答案 4 :(得分:-7)

您无法使用javascript跨域进行任何操作。你必须使用像PHP或asp之类的后端语言。