此服务应该对我的PHP后端api执行HTTP post请求,但是ng2不能编译项目,它会抛出以下错误:
login-service.ts(25,9)中的错误:类型' {headers:Headers; }'不能分配给' RequestOptionsArgs'类型的参数。 财产类型'标题'是不相容的。 输入'标题'不能分配类型'标题'。存在两种具有此名称的不同类型,但它们是不相关的。 物业'钥匙'类型' Headers'
中缺少
我的代码段如下:
import { HttpModule } from '@angular/http';
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Response } from '@angular/http';
import { Headers } from '@angular/http';
@Injectable()
export class LoginService {
constructor(private http: Http) {
}
login(username, password){
var body = 'foo=bar&foo1=bar1';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http
.post('http://127.0.0.1/server.php', body, { headers: headers })
.subscribe((data:Response) => {
let res = data.text();
console.log('Result: ',res);
}, error => {
console.log('Error: ', JSON.stringify(error.json()));
});
}
}
此代码在不同的ng2应用程序中完美运行。
答案 0 :(得分:3)
我有同样的问题,在导入中添加Headers就可以了(谢谢Subsh Ishfaq)
从" @ angular / http";
导入{Http,Headers}答案 1 :(得分:2)
你必须使用:
let options = new RequestOptions({ headers: headers });
更新了登录方法:
login(username, password){
var body = 'foo=bar&foo1=bar1';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
this.http
.post('http://127.0.0.1/server.php', body, options)
.subscribe((data:Response) => {
let res = data.text();
console.log('Result: ',res);
}, error => {
console.log('Error: ', JSON.stringify(error.json()));
});
}