2016-10-25 347 views
4

我正在使用Nginx + flask-socketio + aws elb,并在https上加载URL时我收到以下错误消息,它与Nginx的插座,请在这方面的帮助,混合内容:https上的页面通过https加载,但请求不安全

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

看看到您.js文件,请确保您使用(而不是http://your_site.com/handler//your_site.com/handler)右AJAX网址,例如:

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

实际上,我忽略了在我的js文件中,所有的时间,我打击布什。现在我得到了“WebSocket连接到'ws://example.com/socket.io/1/websocket/654646646'失败:WebSocket握手期间出错:意外的响应代码:500” – IAmHomes

+1

也许这些链接可以帮助: [链接1](https://github.com/websocket-rails/websocket-rails/issues/378#issuecomment-170352798) [链接2](https://github.com/websocket-rails/websocket -rails /问题/ 211#issuecomment-57744925) –

1

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

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

相关问题