после этого вы должны сделать подписку.

аюсь сделать запрос POST сx-www-form-urlencodedТип содержимого заголовка выглядит следующим образом:

login(username, password): Observable<any> {
    return this.http.post('/login', {
      username: username,
      password: password
      },
      {
        headers: new HttpHeaders()
          .set('Content-Type', 'x-www-form-urlencoded')
      }
      );

К сожалению, мой API говорит, что я отправил пустое имя пользователя и пароль.

поэтому я решил сделать запрос почтальона к моей конечной точке входа в систему и посмотреть, откуда возникла проблема, и запрос почтальона вернул имя пользователя и пароль.

Почему при отправке сообщений от почтальона мой API возвращает мое имя пользователя и пароль, а когда я отправляю сообщения из моего приложения Angular, мой API возвращает пустые значения? Я что-то пропустил?

Ответы на вопрос(3)

Вы можете сделать запрос на почту, как показано ниже.

login(email:string, password:string):Observable<User>{
    let headers = new HttpHeaders();
    headers = headers.set('Content-Type', 'application/x-www-form-urlencoded')
    let params = new HttpParams().set('user', JSON.stringify({email: email,password:password}));
    return this.http.post<User>(`${MEAT_API_AUX}/login`,
    {},{headers: headers,params:params})
        .do(user => this.user = user);
}

после этого вы должны сделать подписку.

жен работать.

login(username, password): Observable<any> {
  const body = new HttpParams()
    .set('username', username)
    .set('password', password);

  return this.http.post('/login',
    body.toString(),
    {
      headers: new HttpHeaders()
        .set('Content-Type', 'application/x-www-form-urlencoded')
    }
  );
}
 eugene26 дек. 2017 г., 23:59
Я смог заставить работать решение Оуайна, только не выполнив toString () для тела.
 Marius01 дек. 2017 г., 14:55
После долгих поисков это решение сработало! Там много старых руководств, использующих старый HttpClient ... :) Спасибо!
 goat02 нояб. 2017 г., 23:30
должно бытьapplication/x-www-form-urlencoded
 iBlehhz14 дек. 2018 г., 03:53
уй спасибо! Я пытался найти ваш ответ везде
 Felix20 дек. 2017 г., 09:12
Рассмотрим это решениеstackoverflow.com/a/39864307/4420532

Вот что сработало для меня с Angular 7:

const payload = new HttpParams()
  .set('username', username)
  .set('password', password);

this.http.post(url, content);

Нет необходимости явно устанавливать заголовок при таком подходе.

Обратите внимание, что объект HttpParams является неизменным. Таким образом, выполнение чего-то вроде следующего не будет работать, оно даст вам пустое тело:

const payload = new HttpParams();
payload.set('username', username);
payload.set('password', password);

this.http.post(url, content);
 George C.14 янв. 2019 г., 16:58
где вы нашли контент?
 Fallenreaper12 мар. 2019 г., 19:51
похоже, что содержание и тело являются синонимами

Ваш ответ на вопрос