2011-06-22 415 views
2

我剛剛發現(困難的方法),您無法對另一個域進行ajax調用。在IE6,7,8和9發送跨域數據

我讀過有關的iFrame(只適用於IE6)和跨域XML請求(只從IE8開始工作)

那麼,有沒有其他辦法? 我基本上只需要發送數據到另一臺服務器,沒有收到它。

回答

0

我應該澄清:我不想使用(大)庫,而不能使用代理腳本。

基本上,我決定一個GET將是「足夠好」爲我所試圖做的(軌道印象)

所以當腳本被觸發時,它創建一個iframe,隱藏它,並設置源鏈接到我的腳本+正確的GET參數。沒有形式需要。

+3

然後,你可以使用添加一個'圖像'的DOM,並在'onload'上刪除它...這個問題是,你不能真正檢查請求是否成功,但如果這可能不重要。 –

2

聽起來像你需要使用服務器端代理腳本。即向(例如)PHP腳本發送AJAX請求,該腳本將爲您提供HTTP/cURL請求。

0

我想結合和<form>的能力甚至可以發送到另一個域。 主文件:

<iframe id=ifr src=form.html style="display: none;"></iframe> 
<input id=send-me><input type=button onclick="senddata();" value=Send> 
<script> 
function senddata() 
{ 
    var ifr = document.getElementById('ifr'), 
     f = ifr.contentWindow.document.forms[0]; 
    f.elements.data.value = document.getElementById('send-me').value; 
    f.submit(); 
} 
</script> 

form.html:

<form action="http://another.doma.in/" method=post> 
    <input type=hidden name=data> 
</form> 

這將使POST HTTP請求到另一個域和發送出現的<input id=send-me>內容。

請注意,這只是基本的建議,如果您想要例如多次發送數據而不刷新,則需要進行調整。