8

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

有任何想法吗?

编辑

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

4

5 回答 5

12

您可以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")
}
于 2009-01-21T21:21:09.453 回答
2

如果您想发出跨域请求,您应该进行 JSON 调用或使用服务器端代理。服务器端代理很容易设置,不知道为什么人们如此避免它。在其中设置规则,这样人们就不能使用代理来请求其他东西。

于 2009-01-22T16:10:27.460 回答
1

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

于 2009-01-21T21:12:42.623 回答
0

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

虽然 JavaScript 的安全跨域请求正在开展工作,但此时,您需要使用 Flash 或 Silverlight 之类的插件作为发出请求的桥梁。

于 2009-01-21T21:25:46.277 回答
-7

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

于 2009-01-21T21:14:36.567 回答