跨域XHR到https地址(SSL)在Firefox失败(在Chrome工作)(Cross-doma

2019-10-19 05:35发布

我试图做一个跨域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浏览器开发工具/ Firebug的(在请求/响应头看)。 该代码适用于Chrome(即请求发送,接收相应的响应)。 不安全的要求适用于火狐,但(当我使用http://mydomainx.com/request而不是HTTPS)。

更具体地讲,在Firefox中,HTTPS请求似乎被发送:POST请求出现在Firebug与正确的请求头,但没有得到回应。 我检查了终结点服务器上(mydomainx.com),它不接受该请求(说/var/log/apache2/access.log和error.log)。 我还显示的状态/ responseText的时xhr.readystate == 4 ---->状态= 0,无响应文本。

我试图使XHR没有数据,或者用GET而不是POST,并且没有内容首部,以及与文本/无格式内容头=>确切相同的结果(可在铬在HTTP / HTTPS,在Firefox工作以http,确实在Firefox以https无法正常工作)。

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

Answer 1:

您是否尝试过在Firefox标签访问该网址的安全版本? 这听起来像可能会陷入上的SSL证书Firefox和可能希望你添加一个例外接受证书之前XHR请求该URL会工作。



文章来源: Cross-domain XHR to https address (SSL) fails in Firefox (works in Chrome)