我正在尝试将跨域 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 Dev Tools/Firebug 在 Chrome 和 Firefox 上对其进行了测试(查看请求/响应 header )。该代码适用于 Chrome(即发送请求,收到适当的响应)。
不安全的请求虽然在 Firefox 上有效(当我使用 http://mydomainx.com/request
而不是 https 时)。
更具体地说,在 Firefox 上,似乎发送了 https 请求:POST 请求出现在具有正确请求 header 的 Firebug 中,但未收到任何响应。我检查了端点服务器 (mydomainx.com),它没有收到请求(说/var/log/apache2/access.log 和 error.log)。当 xhr.readystate == 4 ----> status = 0,没有响应文本时,我还显示了 status/responseText。
我尝试制作没有数据的 XHR,或者使用 GET 而不是 POST,没有内容 header ,使用文本/纯内容 header => 完全相同的结果(在 chrome 上使用 http/https,在 firefox 上使用http,不适用于带 https 的 firefox。
我花了很多时间尝试在谷歌上寻找解释但没有成功...任何帮助将不胜感激。 非常感谢
最佳答案
您是否尝试过在 Firefox 选项卡中访问安全版本的 URL?听起来 Firefox 可能卡在了 SSL 证书上,并且可能希望您添加一个异常(exception)以在对该 URL 的 XHR 请求生效之前接受该证书。
关于javascript - 跨域 XHR 到 https 地址 (SSL) 在 Firefox 中失败(在 Chrome 中工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21065016/