4

我正在使用 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.
4

2 回答 2

3

查看您的.js文件,确保您使用的是正确的 ajax URL(//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){...}
});
于 2016-10-25T16:23:40.383 回答
0

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

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

于 2017-01-10T13:32:25.623 回答