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