Сервисный работник не инициирует исходный запрос после выполнения предварительного запроса
Я пытаюсь сделать запрос GET/POST с fetch в файле сервисного рабочего, но он отправляет только запрос OPTIONS, а не отправляет мой исходный запрос. ниже мой код:
fetch('http://cross-origin-server/controller/function',{
headers: {
"x-app-header": 'app'
},
"mod":"no-cors"
}).then(function(response) {
console.log(response);
});
Вот заголовки запроса и ответа:
Заголовки запроса
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-GB,en-US;q=0.9,en;q=0.8
Access-Control-Request-Headers:x-custom-header
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:192.168.1.215
Origin:http://localhost:3000
Заголовок ответа
Access-Control-Allow-Headers:Content-Type, Content-Length, Accept-Encoding, Authorization,Cache-Control, x-custom-header, x-requested-with
Access-Control-Allow-Methods:GET, OPTIONS
Access-Control-Allow-Origin:*
Cache-Control:no-store, no-cache, must-revalidate
Connection:Keep-Alive
Content-Length:21
Content-Type:text/html; charset=UTF-8
Я не могу понять, почему мой исходный запрос не отправляется. Я разрешил все источники со стороны моего сервера (Access-Control-Allow-Origin:*). Пожалуйста, помогите, спасибо заранее
Редактировать: проблема заключается в том, что "реальный запрос не отправляется" после завершения предварительного запроса (OPITONS).
1 ответ
Сервисные работники будут работать только с обслуживаемым трафикомhttps://
(с ограниченным исключением для одного и того же происхождения http://localhost
Запросы). Ваш пример показывает, что вы делаете запрос на http://cross-origin-server
, который, хотя и не является реальным URL, создает впечатление, что вы используете http://
,