我有以下代码:
var headers = new Headers();
// headers.append('Content-Type', 'application/json');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post(
'http://192.168.1.45:3000/testrestapi',
{headers: headers}
).map((res => res.json())
.subscribe(data => {
// we've got back the raw data, now generate the core schedule data
// and save the data for later reference
this.data = data;
console.log('Friends Provider was a success!');
console.log(JSON.stringify(data));
resolve(this.data);
},
(err)=>{
console.log('Error in Friends Provider!');
},
()=>{
console.log('Friends Provider network call has ended!');
}
)
)
});
代码编译得很好,没有错误,但我在ide中得到了以下错误:
我正在跟踪这个文档:https://angular.io/docs/js/latest/api/http/Http-class.html。它展示了如何将HTTP用于GET,而不是POST。我似乎错过了标题的类型,我也不知道在这里放什么,它抱怨订阅方法的类型,再次我不确定在这里放什么,因为我在跟踪文档,它似乎没有什么不同?
发布于 2016-03-21 08:36:36
您已经在代码的第2行和第3行中导入了2次Http模块,其中一条是多余的。
http post的API为:
post(url: string, body: string, options?: RequestOptionsArgs) : Observable<Response>
在https://angular.io/api/http/Http中
它期望有一个JSON.stringified主体作为第二个参数,但是您正在推送头选项,这应该是第三个参数。
我还建议用
headers.set('Content-Type', 'application/json');
而不是append
。
此外,在订阅数据之后,您也缺少了偏执。
.subscribe(
(data) => {
console.log('Do something with data here \n',data);
}
);
发布于 2016-03-21 05:19:58
var headers = new Headers();
// headers.append('Content-Type', 'application/json');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post(
'http://192.168.1.45:3000/testrestapi',
{headers: headers}
)
.map((res => res.json())
.subscribe(data =>
{
this.data = data;
console.log('Friends Provider was a success!');
console.log(JSON.stringify(data));
//resolve(this.data);
},
(err)=>{
console.log('Error in Friends Provider!');
},
()=>{
console.log('Friends Provider network call has ended!');
}
);
发布于 2016-03-21 05:20:08
https://stackoverflow.com/questions/36123585
复制相似问题