繁体   English   中英

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

[英]Asynchronous cross-domain POST request via JavaScript?

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

有任何想法吗?

编辑

遗憾的是,我无法控制响应数据,它从XML,json到简单文本都有所不同。

您可以捕获iframeonload事件。 form到iframe并监听onload。 您将无法访问iframe的内容,只是事件。

尝试这样的事情:

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

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

脚本块:

var loadComplete = 0
function loaded() {
    //avoid first onload
    if(loadComplete==0) {
        loadComplete=1
        return()
    }
    alert("form has loaded")
}

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

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

YUI3IO对象提供跨域请求,但它使用嵌入在页面上的小型Flash控件。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM