当我们向外部api发送包含JSON内容的数据时,会出现一个
JSON内容:
Access-Control-Allow-Origin
错误。解决这个问题的方法是使用x-www-form-urlencoded
内容。
有没有办法改用JSON呢?JSON内容:
this.http.post('/api/login', {
email: email,
password: pass
}).map(res => res.json())
.subscribe(response => {
console.log(response);
} , error => console.error(error));
}
x-www-form-urlencod
:
this.headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.options = new RequestOptions({ headers: this.headers, method: 'post'});
return this.http.post('/api/login', "email=info@mail.com&password=123", this.options )
.map(res => res.json())
.map(user => {
if (user) {
console.log(user);
}
return !!user ;
});
}
其他解决方案:
1.在Chrome中安装Access-Control-Allow-Origin扩展程序
2.查找另一种方法启动本地主机的Web API
3.在IIS7上启用CORS
但问题仍未解决!