Запрос POST от углового к API-интерфейсу пружинной опоры

Я создал REST API в Spring Bboot и клиентское приложение в Angular 4. Я запускаю оба приложения локально. Когда я тестирую метод POST из postman, он работает хорошо, однако, когда я делаю запрос POST из приложения Angular 4, он приводит к 400 Bad request. REST API отображает следующую ошибку на консоли как

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing

У REST API есть метод POST, как показано ниже:

@CrossOrigin(origins = "*")
    @RequestMapping(value = "/api/newcustomer", method=RequestMethod.POST, consumes= "application/json")
    public Customer addCustomer(@RequestBody Customer customer){
        System.out.println("***********"+customer.getFirstName());
        return customer;
    }

Сервис Angular

@Injectable()
export class PostdataService {

  constructor(private _http : Http) {}

  postContactFormData(firstName, lastName, accounts, phoneNumber){
    var body : {firstName , lastName, accounts, phoneNumber};
    var headers = new Headers({ 'Content-Type': 'application/json' });
    return this._http.post('http://localhost:8080/api/newcustomer/', JSON.stringify(body),{
        headers : headers
    }).subscribe(
        () =>{},
        err => console.error(err)
    );
  }

}

Класс Customer

public class Customer {

     private String firstName;
     private String lastName;
     private String phoneNumber;
     private List<Account> accounts;

     public Customer(){

     }
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
479
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Запустите тело запроса через линтер, например jsonlint.com.

Запрос, который вы пытаетесь преобразовать в строку, недействителен json {firstName , lastName, accounts, phoneNumber} должен быть примерно таким:

{"firstName": "firstName", "lastName": "lastName", "accounts": [1, 2, 3], "phoneNumber": 1.800.123.4567}

Спасибо, Андрей. Я понял. Я создал объект Customer, а затем передал его JSON.stringify (customer); Теперь представление json верное.

smit 25.03.2018 12:40

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