Angular 2 post 方法给出打字稿错误

Angular 2 post method gives typescript error

我正在使用 Angular 2 并且我通过服务与 API 交互。
我有一个要用于发布到 API 的方法。

ERROR in src/app/application/users/create-new-user/create-new-user.component.ts(146,5): error TS2554: Expected 0 arguments, but got 1.

user.ts code

var submitData =
{
  first_name: formData.firstName,
  last_name: formData.lastName,
  email: formData.email,
  password: formData.password,
  address_1: formData.address1,
  address_2: formData.address2,}

his.appService.createUser(submitData).subscribe((result: any) => {
  if (result != '') {

appservice.ts

createUser(): Observable<any> {

  const headers = new HttpHeaders()
    .set('security-token', localStorage.getItem('loginToken'));

  return this.http.post<any>(this.basePath + '/user-groups', { headers })
    .pipe(
      map((response => {
        return response.data;
      }))

提到的代码中有很多错误。我会根据相关性指出它们。 1.Argument 通过 必须在 createUser 函数中定义。 2.You 仅设置 header 而未在 POST 请求中传递任何数据,这是您的主要目的。 3. 您不能 return response.data 而只是 POST 方法的 return 输出,因为 return 类型的 createUser 是 Observable 。

所以正确的代码编写方式必须是:

</p> <p>createUser(data:any): 可观察的{</p> <p>const headers = new HttpHeaders().set('security-token', localStorage.getItem('loginToken'));</p> <p>return this.http.post(this.basePath + '/user-groups', 数据, {headers: headers}) }</p> <p>

这样试试:

user.ts

  submitData() {

    var submitData =
    {
      first_name: formData.firstName,
      last_name: formData.lastName,
      email: formData.email,
      password: formData.password,
      address_1: formData.address1,
      address_2: formData.address2,
    }
    this.appService.createUser(submitData).subscribe((result: any) => {
      if (result != '') {
        console.log(result)
      }
    })
  }

appservice.ts

 createUser(data:any): Observable<any> {


    let headers = new HttpHeaders();
    headers = headers.set('security-token', localStorage.getItem('loginToken'));

    return this.http.post(this.basePath + '/user-groups', data, { headers })
  }