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 (т.е. мой путь проверки работоспособности), но я думаю, что должен быть более традиционный подход.

0 ответов

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