2014-01-11 67 views
1

我試圖製作跨域XHR到安全域。Firefox中的https地址(SSL)跨域XHR失敗(適用於Chrome)

我用下面的代碼可以這樣做:

this.post = function (url, data) { 
    var xmlhttp=new XMLHttpRequest(); 
    xmlhttp.open("POST",url,true); 
    xmlhttp.withCredentials=true; 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"); 
    xmlhttp.send(data); 
} 

我用URL編碼的字符串數據和https://mydomainx.com/request作爲URL此功能。

我使用Chrome開發工具/ Firebug(查看請求/響應標頭)在Chrome和Firefox上測試它。該代碼適用於Chrome(即發送請求,收到適當的響應)。 不安全的請求在Firefox上工作(當我使用http://mydomainx.com/request而不是https)。

更具體地說,在Firefox上,似乎發送了https請求:POST請求出現在Firebug中,並帶有正確的請求標頭,但沒有收到響應。我檢查了端點服務器(mydomainx.com),它沒有收到請求(說/var/log/apache2/access.log和error.log)。當xhr.readystate == 4 ----> status = 0時,我還顯示status/responseText,沒有響應文本。

我試着製作沒有數據的XHR,或者使用GET代替POST,沒有內容頭,並且使用文本/純文本內容頭=>完全相同的結果(在http/https中使用chrome,適用於firefox與http,不能在https上使用Firefox)。

我花了很多時間試圖谷歌的解釋沒有成功...任何幫助將不勝感激。 非常感謝

回答

0

您是否嘗試過在Firefox標籤中訪問URL的安全版本?這聽起來像Firefox可能會卡在SSL證書上,並且可能希望您在XHR請求該URL之前可以添加異常來接受證書。

+0

謝謝!幫助我發現問題是確認證書密鑰鏈並編輯apache2配置,如https://www.startssl.com/?app=21中所述。奇怪的是,Chrome瀏覽器沒有問題,但它 – rbido

相關問題