Смешанный контент: страница на 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,

Другие вопросы по тегам