Смешанный контент: страница на https была загружена через https, но запрошена небезопасная
Я использую Nginx + flask-socketio + aws elb, и когда URL-адрес загружается по https, я получаю следующее сообщение об ошибке, которое относится к 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 ответа
Загляни в свой .js
файл, убедитесь, что вы используете правильный URL-адрес 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){...}
});
Смешанный контент - это политика безопасности, используемая в современных браузерах, и его целью является предотвращение утечки информации, извлекаемой через "безопасный" HTTPS в незащищенный контекст. Поэтому сайт, обслуживаемый HTTPS, должен использовать HTTPS или другие протоколы с поддержкой TLS для извлечения контента.
Префикс URI для веб-сокетов через TLS: wss
и для простых веб-сокетов ws
, По крайней мере, Chromium и Firefox считают https
+ws
смешанный контент, и отрицать такие настройки - поэтому wss
должен использоваться в качестве префикса URI в контексте безопасности /HTTPS вместо ws
,