Назад | Перейти на главную страницу

CORS разрешает все, кроме предварительной проверки, по-прежнему не работает

Я использую Istio в Google Kubernetes Engine с Istio. Я добавил в свою виртуальную службу политику CORS, которая разрешает все источники. Выглядит это так:

  - match:
    - port: 443
    route:
    - destination:
        host: rev79-api-service
        port:
          number: 9000
    corsPolicy:
      allowOrigin:
        - '*'
      allowMethods:
        - POST
        - GET
        - OPTIONS
        - PUT
        - DELETE
      allowHeaders:
        - grpc-timeout
        - content-type
        - keep-alive
        - user-agent
        - cache-control
        - content-type
        - content-transfer-encoding
        - x-accept-content-transfer-encoding
        - x-accept-response-streaming
        - x-user-agent
        - x-grpc-web
      maxAge: 86400s
      exposeHeaders:
        - grpc-status
        - grpc-message
      allowCredentials: true

Но когда я пытаюсь сделать запрос из браузера, я получаю такую ​​ошибку:

dev.rev79.app/:1 Доступ к XMLHttpRequest в 'https://api.rev79.app/sil.rev79.Admin/ListNations'от происхождения'https://dev.rev79.app'заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: он не имеет статуса HTTP ok.

Что мне делать, чтобы избежать этой ошибки CORS?

Я рассматриваю возможность направлять все запросы методом OPTIONS в службу, которая просто дает ответ 200 (т.е. мой путь проверки работоспособности), но я думаю, что должен быть более традиционный подход.