Сервисный работник не инициирует исходный запрос после выполнения предварительного запроса

Я пытаюсь сделать запрос 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://,

Другие вопросы по тегам