как получить значения, которые были отправлены из ax ios .post в бэкэнде - PullRequest
0 голосов
/ 12 июля 2020

Я использую реакцию для внешнего интерфейса и Springboot для внутреннего интерфейса. Я не могу получить данные, которые я отправил с помощью ax ios в бэкэнде. Первый код ниже - это интерфейс, в котором я публикую и отправляю 3 объекта, которые я хочу использовать в бэкэнде. И второй сегмент кода - это бэкэнд, где у меня есть пост-мэппинг, но я действительно не понимаю, как получить те 3 объекта, которые я отправил из внешнего интерфейса. Также пользователь находится там, где у меня есть геттер и сеттеры для имени, сообщения и электронной почты, поэтому я хочу установить данные из внешнего интерфейса в эти переменные в User. Я новичок в Springboot, но у меня есть некоторый опыт подключения базы данных к Springboot, но в этом случае мне не нужно использовать базу данных для хранения чего-либо. Общая цель для меня - создать рабочую контактную форму, в которой пользователи могут отправлять комментарии / жалобы о веб-странице, и она будет направлять эти электронные письма мне.

const info = {
    name: "Test" 
    message: "This is comment for test",
    email: "test@test.com  
};
        
axios.post("http://localhost:8080/postgressApp/signup-success", info)
   .then(response => {
       if(response.data != null) {
          this.setState({show:true});
          setTimeout(() => this.setState({show:false}), 3000);
          window.location.reload();
       } else {
          this.setState({show:false});
       }
    });
@RestController
@RequestMapping("/postgressApp")
@CrossOrigin(origins="http://localhost:3000")
public class RegistrationController {
    
    private Logger logger = LoggerFactory.getLogger(RegistrationController.class);
    
    @Autowired
    private NotificationService notificationService;
    
    @PostMapping("/signup-success")
    public String signupSuccess(){
        
        // create user 
        User user = new User();
        
        // send a notification
        try {
            notificationService.sendNotificaitoin(user);
        }catch( MailException e ){
            // catch error
            logger.info("Error Sending Email: " + e.getMessage());
        }
        
        return "Thank you for registering with us.";
    }
    
}

1 Ответ

2 голосов
/ 12 июля 2020

Измените подпись вашего метода следующим образом:

...
@PostMapping("/signup-success")
public String signupSuccess(@RequestBody User user) {
...
}

@RequestBody аннотация сообщает Spring привязать тело входящего HTTP-запроса к вашему типу. Он проверит ключи и значения параметров запроса, проверит тип, который вы указали после аннотации, попытается сопоставить ключи параметров с полями в вашем классе User, а затем скопирует значения из запроса в ваш экземпляр User.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...