我正在尝试从https网站(使用heroku托管)向http服务器发送XMLHttpRequest
。我收到了错误:
..通过HTTPS加载,但请求了一个不安全的XMLHttpRequest 端点..
这是我的代码:
$(document).ready(function() {
let btn = $('#btn');
const url = "http://templateURL.com";
const token = "ABC123";
function createCORSRequest(method, url){
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr){
xhr.open(method, url, true);
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
}
else if (typeof XDomainRequest != "undefined"){
xhr = new XDomainRequest();
xhr.open(method, url);
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
} else {
xhr = null;
}
return xhr;
}
btn.click(function() {
let request = createCORSRequest("get", url);
if (request){
request.onload = function() {
console.log(request.response);
};
request.send();
}
});
当我在本地运行时,上述代码按预期工作(仅使用绕过CORS的Google Chrome扩展程序),但是当我将代码推送到heroku时,它变成了https,它不再起作用。< / p>
我搜索了堆栈溢出的解决方案,我发现了这个问题:Page loaded over HTTPS but requested an insecure XMLHttpRequest endpoint接受的答案说它无法完成。
我尝试连接的http -server没有https版本,因此将网址替换为const url = "//templateURL.com";
并不起作用。我也无法控制http -server,因此我无法对其进行任何更改。
有没有办法在http和https之间建立类似的连接?我可以使用的任何工具?