Firefox中的跨域XHR到https地址(SSL)失败(适用于Chrome)

时间:2014-01-11 16:46:51

标签: javascript ajax firefox ssl xmlhttprequest

我正在尝试将跨域XHR创建到安全域。

我使用以下代码执行此操作:

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和Firefox上使用Chrome Dev Tools / Firebug进行了测试(查看请求/响应标头)。该代码适用于Chrome(即已发送请求,已收到相应的响应)。 不安全的请求适用于Firefox(当我使用http://mydomainx.com/request而不是https时)。

更具体地说,在Firefox上,似乎发送了https请求:POST请求出现在Firebug中,其中包含正确的请求标头,但未收到任何响应。我检查了端点服务器(mydomainx.com),它没有收到请求(说/var/log/apache2/access.log和error.log)。当xhr.readystate == 4 ---->时,我还显示了status / responseText。 status = 0,没有响应文本。

我尝试使XHR没有数据,或使用GET而不是POST,没有内容标题,并且使用text / plain content header =>完全相同的结果(适用于http / https中的chrome,适用于使用http的firefox,但不适用于使用https的Firefox)。

我花了很多时间尝试谷歌搜索没有成功的解释...任何帮助将不胜感激。 非常感谢

1 个答案:

答案 0 :(得分:0)

您是否尝试在Firefox标签中访问该网址的安全版本?听起来好像Firefox可能会卡在SSL证书上,并且可能希望您在XHR对该URL的请求起作用之前添加例外以接受证书。