从https客户端访问http服务器

时间:2018-04-24 15:37:12

标签: javascript cors

我正在尝试从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之间建立类似的连接?我可以使用的任何工具?

0 个答案:

没有答案