React JS с API загрузки Spring REST

У меня есть внешнее веб-приложение, разработанное с помощью 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

Мало информации

Vishal Sharma 07.06.2019 08:46

Нам нужно больше информации, чтобы сказать вам кое-что. Во-первых, вы можете предоставить нам какой-нибудь журнал из вашего внешнего приложения. Затем сообщите нам остальные конечные точки, которых вы пытаетесь достичь. Кроме того, сообщите нам конфигурацию вашего остального API.

russellhoff 07.06.2019 08:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
297
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скорее всего, ваше приложение ReactJs и приложение Spring Boot работают под разными портами, и вы не настроили КОРС в сопоставленных методах Spring Rest, чтобы разрешить входящие запросы с хоста: порт, на котором работает ReactJs:

@CrossOrigin(origins = "http://localhost:4200")
@GetMapping("/user")
public Greeting getUser(){}

Вы также можете определить его на самом контроллере:

@CrossOrigin(origins = "http://localhost:4200")
@RestController

Вы также можете зарегистрировать отдельный фильтр CORS для всего приложения: ссылка

В разработке - хорошая идея, но если в производстве мое приложение изменит номер порта?

Ale 07.06.2019 09:04

Затем вы используете стратегию фильтрации CORS. В фильтре вы вводите номер порта из своего файла свойств, который, конечно, будет отличаться для разработчика и продукта.

Maciej Kowalski 07.06.2019 09:11

Как я мог это сделать?

Ale 07.06.2019 09:14

Я разместил ссылку в ответе. Поищи это

Maciej Kowalski 07.06.2019 09:15

Стратегия фильтрации CORS в моей весенней загрузке может конфликтовать с конфигурацией Tomcat CORS?

Ale 07.06.2019 09:19

Если вы используете встроенный загрузочный сервер Spring, это не будет проблемой. Если вы развертываете свое приложение на внешнем экземпляре Tomcat, то вам, скорее всего, следует выбрать для него одно место.

Maciej Kowalski 07.06.2019 09:22

У меня есть экземпляр Tomcat

Ale 07.06.2019 09:39

Я бы все равно поставил эту конфигурацию на весеннюю загрузку

Maciej Kowalski 07.06.2019 09:49

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