簡體   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