我正在尝试将跨域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)。
我花了很多时间尝试谷歌搜索没有成功的解释...任何帮助将不胜感激。 非常感谢
答案 0 :(得分:0)
您是否尝试在Firefox标签中访问该网址的安全版本?听起来好像Firefox可能会卡在SSL证书上,并且可能希望您在XHR对该URL的请求起作用之前添加例外以接受证书。