我可以创建一个表单并使用它向任何站点发出 POST 请求,事情是 FORM 方法不是异步的,我需要知道页面何时完成加载。我尝试使用内部带有表单的 iframe 来解决这个问题,但没有成功。
有任何想法吗?
编辑
不幸的是,我无法控制响应数据,它从 XML、json 到简单文本不等。
我可以创建一个表单并使用它向任何站点发出 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 调用或使用服务器端代理。服务器端代理很容易设置,不知道为什么人们如此避免它。在其中设置规则,这样人们就不能使用代理来请求其他东西。
如果跨域post返回的数据是JSON,那么可以动态添加脚本标签,指向返回数据的URI。浏览器将加载该“脚本”,然后您可以从其他 javascript 访问该“脚本”。
您不能使用 javascript 跨域执行任何操作。您必须使用 PHP 或 asp 之类的后端语言。