我可以创建一个表单并使用它向任何站点发出 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 之类的后端语言。