Я разрабатываю приложение внешнего интерфейса в React, которое вызывает веб-службы, разработанные в приложении Spring Boot, работающем в кластере Kubernetes. Когда я запускаю приложение внешнего интерфейса из localhost
и просматриваю логи бэкэнда, токен JWT не имеет значения, несмотря на то, что он был отправлен в вызове из приложения внешнего интерфейса, и ошибка No 'Access-Control-Allow-Origin' header is present on the requested resource
отображается в консоли, как показано ниже. Когда я внедряю приложение fontend в кластер Kubernestes, токен присутствует - один и тот же код в обоих случаях. Если в бэкэнд-приложении не включена аутентификация, токен, присутствующий на бэкэнд-сервере, регистрирует вызовы из localhost
.
Я использую Fetch для вызова GET:
fetch(url, {
headers: {
'Authorization': 'Bearer ' + auth,
},
})
Ошибка, которую я вижу в консоли от localhost
, работающей в Chrome или Firefox без использования каких-либо плагинов CORS:
index.js:148 OPTIONS MY-BACKEND-URL 500 (Server Error)
submissions:1 Access to fetch at 'MY-BACKEND-URL' from origin 'http://localhost' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Бэкэнд-разработчик сообщает, что настроена эта конфигурация CORS:
.allowedOrigins("*")
.allowedHeaders("Origin", "Content-Type", "Accept");
and all methods
Это заголовки Response, отображаемые в консоли:
Allow GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Connection keep-alive
Date Fri, 11 Oct 2019 11:02:18 GMT
Server nginx/1.15.10
Transfer-Encoding chunked
ЭтоЗаголовки запроса:
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-GB,en;q=0.5
Access-Control-Request-Headers authorization
Access-Control-Request-Method GET
Connection keep-alive
DNT 1
Host MY-HOST-IP
Origin http://localhost
Referer http://localhost/submissions
User-Agent Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/69.0
Есть ли какие-либо предложения о том, как запустить приложение внешнего интерфейса на localhost
, когда включена аутентификация в приложении внутреннего интерфейса?