我正在使用角度6(httpClient),尝试登录,不需要令牌,仅用户名和密码,就无法修改服务器。
login.ts
onLogin() {
this.authService.login(this.email, this.password).subscribe(data => {
console.log(data);
});
}
auth service
login(username, password) {
const data = {
username: username,
password: password
};
const headers = new HttpHeaders();
headers.set('Content-Type', 'application/json');
return this.http.post(this.login_url, data, { headers: headers });
}
有很多问题,例如this one,但这些问题是针对angularjs的,而我使用的是angular 6,有些答案使文章阅读起来没有任何实际的编码答案,有些回答说要更改标头,但到目前为止从邮递员测试中可以看出,服务器仅接受'Content-Type', 'application/json'
,并且在邮递员上运行良好。当我按角度进行操作时,我的发帖请求将成为选项。
甚至有人说要避免CORS,您应该设置一个拦截器,但这是针对您有令牌的人,不是吗?您将其保存在localStorage中,然后使用它,我没有令牌。标头中的服务器X-Session
。
有人说要创建代理package.json
`"start": "ng serve --proxy-config proxyconfig.json",`
proxyconfig.json
{
"/api": {
"target": "example.com",
"secure": false,
"changeOrigin": true
}
}
login_url
中的auth service
指向没有/example/api
的其余端点。我也尝试过,它也不起作用。
有人说,您必须编辑Web服务器,添加Access-Control-Allow-Origin
,如果可能的话,我不想这样做。如果没有,我会联系我的公司并请他们这样做。我想要一个使用角度6的解决方案。