我得到的例外:没有提供Http!我做错了什么?

import {Http, Headers} from 'angular2/http';
import {Injectable} from 'angular2/core'


@Component({
    selector: 'greetings-ac-app2',
    providers: [],
    templateUrl: 'app/greetings-ac2.html',
    directives: [NgFor, NgModel, NgIf, FORM_DIRECTIVES],
    pipes: []
})
export class GreetingsAcApp2 {
    private str:any;

    constructor(http: Http) {

        this.str = {str:'test'};

        http.post('http://localhost:18937/account/registeruiduser/',
            JSON.stringify(this.str),
            {
                headers: new Headers({
                    'Content-Type': 'application/json'
                })
            });

当前回答

从@angular/http导入{HttpModule};打包到模块中。Ts文件并将其添加到导入中。

其他回答

从RC5开始,你需要像这样导入HttpModule:

import { HttpModule } from '@angular/http';

然后将HttpModule包括在上面提到的Günter的imports数组中。

在2016年9月14日发布的Angular 2.0.0版本中,你仍然在使用HttpModule。你的主app.module.ts看起来是这样的:

import { HttpModule } from '@angular/http';

@NgModule({
   bootstrap: [ AppComponent ],
   declarations: [ AppComponent ],
   imports: [
      BrowserModule,
      HttpModule,
      // ...more modules...
   ],
   providers: [
      // ...providers...
   ]
})
export class AppModule {}

然后在你的app.ts中,你可以这样引导:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/main/app.module';

platformBrowserDynamic().bootstrapModule(AppModule);

因为只是在评论区,我重复了Eric的回答:

我必须包含HTTP_PROVIDERS

在使用它之前,将HttpModule添加到app.module.ts文件中的imports数组中。

从@angular/http导入{HttpModule}; @NgModule ({ 声明:[ AppComponent, CarsComponent ], 进口:[ BrowserModule, step 4 ], 供应商:[], 引导(AppComponent): }) 导出类AppModule {}

在app.module.ts文件中导入HttpModule。

import { HttpModule } from '@angular/http';
import { YourHttpTestService } from '../services/httpTestService';

还记得在import下面声明HttpModule,如下所示:

imports: [
    BrowserModule,
    HttpModule
  ],