我在服务器中使用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://otherserver.com"是从https加载但请求不安全的XMLHttpRequest" http://myserver.com/uno.html"。请求已被阻止;内容必须是服务器而不是https。
现在的问题是如何加载任何HTTP请求以使Chrome认为请求是通过HTTPS提供的?请记住,唯一的HTTPS服务器是otherserver.com,我无法在" myserver.com"中实现HTTPS。 这个问题不再重复,因为所有服务器都是我的,我完全控制了#34;同源策略"
答案 0 :(得分:2)
您可以向otherserver.com请求,然后从服务器端请求myserver.com并返回结果。例如(PHP中的示例,但它取决于您的后端):
//request.php
echo file_get_contents("http://myserver.com/uno.html");
然后在客户端:
$.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");
});
答案 1 :(得分:0)
Rory对你的问题的评论解释了为什么这不起作用。
作为一种变通方法,您可以设置一个非HTTPS代理,将请求传递给HTTPS服务,然后返回响应。
考虑到我们行业普遍推动在任何地方使用HTTPS。