Тело POST-запроса с httpClient получило неверный синтаксис - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь написать POST-запрос с телом.Все работает хорошо, кроме тела моего запроса.Мой сервер получает ...:

body: { '{"email":"test@test.com","password":"a"}': '' },

Это не то, что я хочу ... Я хочу что-то подобное:

body: {"email":"test@test.com","password":"a"},

Я не понимаю, что я сделал не так ..Вот мой код.

post(url: string, object: any, httpOptions?: {}) {
    return this.http.post<Response>(this.baseUrl + url, object, httpOptions);
}

и я использую эту функцию здесь:

  let user = new User();
  user.email = this.loginForm.get('email').value;
  user.password = this.loginForm.get('password').value;
  const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded'
    })
  };
  this.httpService.post('api/authenticate', user, httpOptions).subscribe(result => {
    alert(result.message);
  });

Наконец, мой пользовательский класс ..

export class User {
    pk_user: number;
    email: string;
    password: string;
    username: string;
    society: string;
    firstname: string;
    lastname: string;
    locality: string;
    npa: number;
    address: string;
    available: number;
    created_at: string;
    updated_at: string;
}

Спасибо за помощь

1 Ответ

0 голосов
/ 05 марта 2019

Наконец-то я нашел это решение:

post(url: string, object: any, httpOptions?: {}) {
    let httpParams = new HttpParams();
    Object.keys(object).forEach(function (key) {
        httpParams = httpParams.append(key, object[key]);
    });
    return this.http.post<Response>(this.baseUrl + url, httpParams, httpOptions);
}
...