2012-09-13 45 views
3

我有用戶輸入的數據發佈到不同的域和不同的協議。做一些閱讀後,我發現,微軟的XDomainRequest對象不允許跨域交互(不同的協議,端口,#7 here將ie9中的跨域主機發布數據從http服務器發送到https服務器

我在做一個標準的CORS AJAX調用爲FF,Safari和Chrome瀏覽(工作),我一直在嘗試使用XDomainRequest對象IE9。

if ($.browser.msie && window.XDomainRequest) { 
    var xdr = new XDomainRequest(); 
    xdr.open("post", "https://_url_here"); 
    xdr.send(post_data); 
}else { $.ajax(params); } 

當我打開一個https的起源版本的網站,它成功地發送數據給接收URL,但它couldn」 t解析任何數據xdr.send(post_data);「看起來」像發送時一樣,我無法找到相關信息或在控制檯中看到它,我看着this但是不太明白;主機響應:Unable to get value of the property 'postMessage': object is null or undefined

if ($.browser.msie && window.XDomainRequest) { 
    var domain = $("iframe").contentWindow; 
    domain.postMessage(post_data); 
    }else { 
    $.ajax(params); 
    } 

任何人都可以提供一些幫助嗎?

回答

1

下載腳本的位置:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

包括它在你的鏈接到的jQuery後您的HTML,但如果你正在Ajax調用腳本之前。

我用這個腳本將請求發送到在heroku上運行的應用程序(http - > http =正常工作),然後在heroku站點運行sinatra應用程序,然後發送數據到https網站。不漂亮,但它的作品。

+0

得到這個工作與IE10。去檢查IE9。我知道IE10支持CORS。 –