У меня есть внешнее веб-приложение, разработанное с помощью React JS, и API-интерфейс для отдыха, созданный с помощью Spring boot. Когда я пытаюсь получить доступ к API из своего реагирующего приложения, я получаю ошибку 403. Мой API Rest развертывается на сервере tomcat.
POST http://localhost:8080/fantasy/api/auth/signin 403
PostData.js:3 Uncaught (in promise) SyntaxError: Unexpected end of JSON input
Нам нужно больше информации, чтобы сказать вам кое-что. Во-первых, вы можете предоставить нам какой-нибудь журнал из вашего внешнего приложения. Затем сообщите нам остальные конечные точки, которых вы пытаетесь достичь. Кроме того, сообщите нам конфигурацию вашего остального API.





Скорее всего, ваше приложение ReactJs и приложение Spring Boot работают под разными портами, и вы не настроили КОРС в сопоставленных методах Spring Rest, чтобы разрешить входящие запросы с хоста: порт, на котором работает ReactJs:
@CrossOrigin(origins = "http://localhost:4200")
@GetMapping("/user")
public Greeting getUser(){}
Вы также можете определить его на самом контроллере:
@CrossOrigin(origins = "http://localhost:4200")
@RestController
Вы также можете зарегистрировать отдельный фильтр CORS для всего приложения: ссылка
В разработке - хорошая идея, но если в производстве мое приложение изменит номер порта?
Затем вы используете стратегию фильтрации CORS. В фильтре вы вводите номер порта из своего файла свойств, который, конечно, будет отличаться для разработчика и продукта.
Как я мог это сделать?
Я разместил ссылку в ответе. Поищи это
Стратегия фильтрации CORS в моей весенней загрузке может конфликтовать с конфигурацией Tomcat CORS?
Если вы используете встроенный загрузочный сервер Spring, это не будет проблемой. Если вы развертываете свое приложение на внешнем экземпляре Tomcat, то вам, скорее всего, следует выбрать для него одно место.
У меня есть экземпляр Tomcat
Я бы все равно поставил эту конфигурацию на весеннюю загрузку
Мало информации