#javascript #fetch
#javascript #fetch-api
Вопрос:
Я делаю запрос с выборкой на стороне клиента с помощью этого кода:
var request = new Request(`http://ip:8080/click?url=${value}`, {
method: 'GET',
headers: new Headers({
"Content-Type": "application/json"
}),
});
fetch(request)
но когда браузер делает запрос, он автоматически изменяет URL-адрес с помощью протокола https:
https://ip:8080/click?url =${значение}
Примечание: веб-страница имеет SSL-шифрование
Впоследствии я получаю эту ошибку в консоли веб-страницы: не удалось загрузить ресурс: net ::ERR_CONNECTION_CLOSED
Комментарии:
1. Сервер не поддерживает запросы https, когда я тестирую веб-страницу в своем локальном браузере, у меня нет никаких проблем, но при выполнении этого на веб-странице с использованием SSL-шифрования возникает ошибка.
2. Что ?! вы пишете в комментарии, что сервер «не поддерживает https», а в вашем сообщении «веб-страница имеет ssl-шифрование» ?!
3. да, хостинг веб-страницы имеет SSL-шифрование. Сервер, на котором находится API, не поддерживает запросы https
4. Я думаю, что ваша проблема заключается в CORS: en.wikipedia.org/wiki/Cross-origin_resource_sharing
5. @Marc Как это может быть проблемой CORS, поскольку изменения с http на https выполняются браузером?
Ответ №1:
У меня была такая же проблема, и причиной была следующая строка в разделе head:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Он заменяет все http-запросы на https.
Комментарии:
1. Обратите внимание, что это также может исходить из HTTP-заголовков ответа страницы.
2. Это было проблемой для меня в моем шаблоне. Я думаю, что это то, что люди должны проверять, когда видят непредсказуемое поведение.