javascript — извлечение https-контента через api на клиентском сайте, но браузеры выдают ошибки http из-за смешанного контента.

Извлечение https-контента через API на клиентском сайте, но в браузерах возникают ошибки HTTP со смешанным контентом.

Я пытаюсь создать внешний API-интерфейс в приложении Django для предоставления некоторого контента на рабочий сайт WordPress. Клиент работает по протоколу https, а javascript использует fetch для получения URL-адреса https api, но браузеры запрашивают смешанный контент http. Что дает?

Я пробовал и Chrome и Firefox, и оба возвращают похожие ошибки

 fetch('https://mysite.pythonanywhere.com/apit?param1=100000{amp}amp;param2=1000', { method: 'GET', }) .then(function(response) { if (response.status !== 200) { console.log(response); console.log('Looks like there was a problem. Status Code: '   response.status); return; } }); 

мой взгляд на это в Django имеет:

 response = JsonResponse(the_content_dict,safe=False) return response 

Я могу зайти по URL-адресу прямо в браузере и просмотреть ожидаемый ответ json, но когда я размещаю приведенный выше код на клиентском WP-сайте, я вижу в консоли Firefox:

 Blocked loading mixed active content “http://mysite.pythonanywhere.com/apit?param1=100000{amp}amp;param2=1000” TypeError: NetworkError when attempting to fetch resource. rank:154:3 Response { type: "cors", url: "https://mysite.pythonanywhere.com/apit?param1=100000{amp}amp;param2=1000", redirected: false, status: 500, ok: false, statusText: "Internal Server Error", headers: Headers, body: ReadableStream, bodyUsed: false } Looks like there was a problem. Status Code: 500 

Аналогично в Chrome:

 (index):154 Mixed Content: The page at 'https://clientsite.com' was loaded over HTTPS, but requested an insecure resource 'http://mysite.pythonanywhere.com/apit?param1=100000{amp}amp;param2=1000'. This request has been blocked; the content must be served over HTTPS. (anonymous) @ (index):154 (index):1 Uncaught (in promise) TypeError: Failed to fetch 

Почему браузеры пытаются загрузить не HTTPS-версию вместо HTTPS в выборке? Я использую django-cors-headers для внесения в белый список клиентского домена, который, кажется, работает.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector