代码之家  ›  专栏  ›  技术社区  ›  user8885733

在Angular中使用Http模块时出错

  •  -1
  • user8885733  · 技术社区  · 7 年前

    我正在使用HttpModule调用我的API。我已经在导入中包含了该模块,并且在启动服务器时抛出了一个错误(pl查看screeshot)。 Error Image

    我正在尝试使用Http从服务调用API。发布并获取上面显示的错误

    我的应用程序。单元ts:

    import {BrowserModule} from '@angular/platform-browser';
    import {NgModule} from '@angular/core';
    
    import {AppComponent} from './app.component';
    import {HeaderComponent} from './header/header.component';
    import {AuthComponent} from './auth/auth.component';
    import {MarksComponent} from './marks/marks.component';
    import {SigninComponent} from './auth/signin/signin.component';
    import {SignupComponent} from './auth/signup/signup.component';
    import {FormsModule} from '@angular/forms';
    import {AppRoutingModule} from './app-routing.module';
    import {AuthService} from './auth/auth.service';
    import {HttpModule} from '@angular/http';
    
    @NgModule({
    declarations: [
    AppComponent,
    HeaderComponent,
    AuthComponent,
    MarksComponent,
    SigninComponent,
    SignupComponent
     ],
    imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule,
    HttpModule
    ],
    providers: [AuthService],
     bootstrap: [AppComponent]
    })
    export class AppModule {
    }
    

    我的服务:

    import {Router} from '@angular/router';
    import {Injectable} from '@angular/core';
    import {Http} from '@angular/http';
    
    @Injectable()
    export class AuthService {
      constructor(private router: Router, private http: Http) {
    
      }
      signUpUser(firstName: string, lastName: string, email: string, password: 
      string) {
           const body: [] = [firstName, lastName, email, password];
           return this.http.post('http://localhost:3000/auth/signup', body).map(data 
        => {
                data = data.json();
                return data;
            });
        }
     }
    
    3 回复  |  直到 7 年前
        1
  •  0
  •   user9117694 user9117694    7 年前

    在我看来,这不是http问题,而是一个糟糕的声明:

    使用此选项定义正文:

    let body = {conge,user};
     this.httpClient.post('http://localhost:8080/api/sendconge', body)
    .subscribe(function(data) {
            console.log(data);
    });
    

    httpClient比简单的http更好地发送数据。

        2
  •  0
  •   user8885733    7 年前

    我用错了post方法。 我的更新代码是:

    signUpUser(firstName: string, lastName: string, email: string, password: string) {
    // const body: [] = [firstName, lastName, email, password];
    const body = {
        firstName: firstName,
        lastName : lastName,
        email : email,
        password : password
      };
    return this.http.post('http://localhost:3000/auth/signup', body);
    

    }

        3
  •  -1
  •   Gautam    7 年前

    您应该为body数组指定一个类型。

    对于eg:

    const body:any[]=[名字、姓氏、电子邮件、密码];