混合内容:https页面加载了https但请求不安全

时间:2016-10-25 06:13:18

标签: nginx flask flask-socketio flask-sockets

我正在使用Nginx + flask-socketio + aws elb,当在https上加载URL时,我收到以下错误消息,这是与Nginx和套接字相关的内容,请帮助解决此问题,

socket.io.min.js:2 Mixed Content: The page at 'https://localhost/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://localhost/socket.io/1/?t=1477375737508'. This request has been blocked; the content must be served over HTTPS.d.handshake @ socket.io.min.js:2
socket.io.min.js:2 XMLHttpRequest cannot load http://localhost/socket.io/1/?t=1477375737508. Failed to start loading.

2 个答案:

答案 0 :(得分:2)

查看您的.js文件,确保使用正确的ajax网址(//your_site.com/handler,而不是http://your_site.com/handler),例如:

$.ajax({
url:'//your_site.com/handler',dataType:'json',type:'get',
success: function(data){...},
complete:function(xhr, textStatus){...}
});

答案 1 :(得分:1)

混合内容是当前浏览器采用的安全策略,其目标是防止通过“安全”HTTPS获取的信息泄漏到非安全上下文。因此,使用HTTPS提供服务的站点必须使用HTTPS或其他启用TLS的协议来获取内容。

TLS上的Websockets的URI前缀是wss,对于普通的Websockets ws。至少ChromiumFirefox考虑​​https + ws混合内容,并拒绝此类设置 - 因此wss应该用作安全/ HTTPS中的URI前缀上下文而不是ws