终于解决了跨域问题之后发现不管什么操作后台返回过来的数据都是一样的,谷歌查看数据已经发送过去了,但是后台没有处理,为什么?
对比header之后发现angular的http.post发送的参数是json格式的,传参方式是request payload,不是用的form传输,header中的content-type也不一样,修改一下header,并把json格式转化一下即可:
private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' });
let val=$.param(value);
this.http
.post(url,val,{headers:this.headers})
.map(res => res.json()).subscribe(data=>{
if (data) {
this.title=data.msg;
}
})
注意此处有坑,我写上{headers:this.headers}之后提示错误,查了一下http的post请求,是可以带参数的,为什么会报错呢?看了一下报错信息是:
1.png
是这句话出了错:
private headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' });
头部引入:import { Http,Headers } from '@angular/http'; 即可
网友评论