我正在尝试将post方法用于登录目的,以下代码:
log(data){
let vals = JSON.stringify(data.value);
let headerOptions = new HttpHeaders();
headerOptions.append('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
return this.http.post("http://IP_server:88/mLog" , vals, { headers: headerOptions}).pipe(tap(
res=>{ console.log('data: '+res) },
err=> console.log(err) ));
}
我收到如下错误:
从原点“ http://IP_server:88/mLog”到“ http://localhost:8080”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-来源的标头出现在请求的资源上。
答案 0 :(得分:0)
在Angular 6中,必须使用httpClient标头与所有端点标头一起传递。下面是功能:
getHeader() {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
"Access-Control-Allow-Origin": "*"
})
};
return httpOptions;
}
调用此函数并将httpOptions传递给所有端点。否则,您必须在Java端进行更改。.他们必须设置跨原点的标头。
答案 1 :(得分:0)
您可以从浏览器中访问该网址并获得预期的响应吗?
如果是,则不需要来更改UI / JavaScript代码。
需要从服务器端/ Java代码启用 CORS 过滤器。
答案 2 :(得分:0)