我試圖製作跨域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)。
我花了很多時間試圖谷歌的解釋沒有成功...任何幫助將不勝感激。 非常感謝
謝謝!幫助我發現問題是確認證書密鑰鏈並編輯apache2配置,如https://www.startssl.com/?app=21中所述。奇怪的是,Chrome瀏覽器沒有問題,但它 – rbido