Ответ XHR заблокирован Chrome из-за проблемы со смешанным содержимым (http/https)
В настоящее время я использую jQuery AJAX, чтобы получить относительный URL-адрес без схемы / домена перед ним (например, '/js/get_international_popup/'. Ответ также является относительным URL-адресом, когда я просматриваю свой заголовок местоположения перед тем, как его вернуть.
Когда я проверяю это локально, через HTTP, все работает как надо. Однако, как только я протестирую его на своем живом сервере, через HTTPS ответ блокируется Chrome, потому что он говорит, что он небезопасен:
Смешанный контент: страница по адресу https://example.com/ была загружена через HTTPS, но запрашивалась небезопасная конечная точка XMLHttpRequest " http://example.com/js/get_international_popup/". Этот запрос был заблокирован; содержание должно быть подано через HTTPS.
С точки зрения Chrome мой локальный тестовый запрос / ответ прошел по HTTP, но мой живой тестовый запрос прошел по HTTPS и получил HTTP-ответ. Я не могу просмотреть ответ Chrome на работающем сервере, потому что он заблокирован.
Если я возвращаю ответ с абсолютным URL-адресом (включая https://domain/), кажется, что все работает нормально, но я предпочитаю не использовать абсолютные URL-адреса.
Кто-нибудь знает, есть ли способ решить эту проблему, используя относительные URL-адреса?
1 ответ
Добавьте это, используя JavaScript:
var relative_url = '/js/get_international_popup/';
var absolute_url = window.location.origin + relative_url;
$.ajax(absolute_url, function(){});
Ссылка: http://www.w3schools.com/jsref/prop_loc_origin.asp
Примечание: не тестировалось
Иногда это может быть вызвано завершающей косой чертой. + Изменитьhttps://example.com/js/get_international_popup/
к https://example.com/js/get_international_popup