Javascript 如何从HTTPS加载HTTP

Javascript 如何从HTTPS加载HTTP,javascript,jquery,http,https,Javascript,Jquery,Http,Https,我在我的服务器中使用HTTPS,但我有第二个服务器,其中包含一些信息,我想从那里获取一些文件。我现在使用下面的代码: $.get("http://myserver.com/uno.html", function(data, status){ if (dat == "ok") { alert("Myserver.com is online"); } }).fail(function(e) { alert("Myserver.com is offline");

我在我的服务器中使用HTTPS,但我有第二个服务器,其中包含一些信息,我想从那里获取一些文件。我现在使用下面的代码:

$.get("http://myserver.com/uno.html", function(data, status){
    if (dat == "ok") {
        alert("Myserver.com is online");
    }
}).fail(function(e) {
    alert("Myserver.com is offline");
});
有了这些代码,Chrome就会抛出异常

“”已从https加载,但请求了不安全的XMLHttpRequest“”。请求已被阻止;内容必须是https上的服务器

现在的问题是如何加载任何HTTP请求,使Chrome认为该请求是通过HTTPS提供的?请记住,唯一的HTTPS服务器是otherserver.com,我无法在“myserver.com”中实现HTTPS
这个问题不会重复,因为所有服务器都是我的,我完全控制“同源策略”

您可以向otherserver.com发送请求,然后从服务器端发送请求到myserver.com并返回结果。例如(以PHP为例,但这取决于您的后端):

然后在客户端:

$.get("https://otherserver.com/request.php", function(data, status){
    if (dat == "ok") {
        alert("Myserver.com is online");
    }
}).fail(function(e) {
    alert("Myserver.com is offline");
});

Rory对你的问题的评论解释了为什么这行不通

作为一种解决方法,您可以设置一个非HTTPS代理,将请求传递给HTTPS服务,并返回响应


考虑到我们的行业普遍推动在任何地方使用HTTPS。

你不能。这是浏览器级别的安全功能。您必须通过HTTPS加载所有内容以避免此警告。想想看,如果有可能“愚弄”浏览器,使其认为连接是安全的,那么会出现安全问题。您应该在服务器端从http服务器到https服务器进行事务处理,然后通过https服务器将其提供给浏览器。为什么您不能在myserver.com中实现https?我不能在中实现它myserver.com因为我的主机的SSL定价对我来说太高了,但是otherserver.com是由我的计算机托管的这是我评论的,应该是正确的答案,他指定他拥有两台服务器,所以他应该能够做到这一点。谢谢,我爱你xD。这已经解决了我的问题。
$.get("https://otherserver.com/request.php", function(data, status){
    if (dat == "ok") {
        alert("Myserver.com is online");
    }
}).fail(function(e) {
    alert("Myserver.com is offline");
});