У меня есть JSP с кодом javascript, работающим на сервере с HTTPS. В этом JavaScript я запускаю запрос к другому (локальному) веб-серверу следующим образом:
let url = 'http:/localhost:3111/doSomePost';
$.ajax({
type: 'POST',
url: url,
contentType: 'application/octet-stream',
processData: false,
data: uint8array
})
Для этого необходимо, чтобы CrossOrigin был включен на локальном веб-сервере для работы - я настроил эта часть и она работает.
Но она работает только в Chrome. Не в Firefox.
Firefox выдаст мне эту ошибку:
Запрос перекрестного источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса на http://localhost: 3111 / doSomePost . (Причина: запрос CORS не был выполнен).
Я вижу на вкладке сети firefox devtools, что firefox даже не удосуживается отправить предварительный запрос (запрос OPTIONS) , Поэтому Firefox просто решает, что не отправит этот запрос (и я подозреваю, что это потому, что протокол локального веб-сервера - HTTP).
Теперь я изменил свой локальный веб-сервер на использование HTTPS с использованием самозаверяющего сертификата, как описано здесь: https://www.baeldung.com/spring-boot-https-self-signed-certificate
Теперь он работает в Firefox и Chrome (после того, как я вручную добавлю недействительный сертификат).
Мне просто интересно, почему chrome не имеет проблем, но firefox делает.
ОБНОВЛЕНИЕ: исправлено незначительная опечатка в сообщении об ошибке