Получите сообщение об ошибке 400 (неверный запрос) при попытке использовать метод публикации для x- www-form-urlencoded in angular - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь отправить сообщение в почтальоне и могу отправить сообщение с именем и описанием, но в сервисе я не могу этого сделать. Кто-нибудь знает, в чем проблема моего сервиса?

postCreateMember(name, desc): Observable<any> {
  let httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded'
    }),
    withCredentials: true
  };

  const nssUrl = this.baseUrl + 'Members';
  var body = {
    Name: name,
    Description: desc
  };

  return this.http.post<HttpRequestResponse>(nssUrl, body, httpOptions).pipe(
    map(
      (data) => {
        return data;
      },
      (error) => console.log(error)
    )
  );
}

1 Ответ

0 голосов
/ 09 июля 2020

Попробуйте вот так

import { Component, VERSION, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpHeaders, HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
  name = 'Angular ' + VERSION.major;
  baseUrl = 'https://angular-ivy-xpuugc.stackblitz.io/';
  constructor(private http: HttpClient) {}
  postCreateMember(name, desc) {
    let httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/x-www-form-urlencoded'
      })
      , withCredentials: true
    };

    const nssUrl = this.baseUrl + 'Members';
     const body = new FormData();
     body.append('Name', name);
     body.append('Description', desc);
    return this.http.post(nssUrl, body, httpOptions ).pipe(
      map(
        data => {
          return data;
        },
        error => console.log(error)
      )
    );
  } 
  ngOnInit() {
    this.postCreateMember('test','text').subscribe((response:any)=> {
      console.log(response);
    });
  }
}
...