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



我正在尝试将跨域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开发工具/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,并且没有内容标头,并且使用text/plain-content-header=>完全相同的结果(适用于http/https中的chrome,适用于带http的firefox,不适用于带https的firefox)。

我花了很多时间在谷歌上寻找解释,但没有成功。。。任何帮助都将不胜感激。非常感谢

您是否尝试过在Firefox选项卡中访问URL的安全版本?听起来Firefox可能被SSL证书卡住了,可能希望您添加一个异常来接受证书,然后XHR对该URL的请求才能工作。

最新更新