通过JavaScript异步跨域POST请求?
-
19-08-2019 - |
题
我可以创建一个表单并使用它向任何站点发出 POST 请求,但 FORM 方法不是异步的,我需要知道页面何时完成加载。我尝试使用内部带有表单的 iframe 来解决这个问题,但没有成功。
有任何想法吗?
编辑
不幸的是我无法控制响应数据,它从 XML、json 到简单文本。
解决方案
可以捕捉onload
的iframe
事件。定位您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访问。
您不能使用JavaScript做任何事情跨域。你必须使用像PHP或ASP或什么后端语言。
不隶属于 StackOverflow