我有一个angular2应用程序,它使用jwt身份验证连接到express/node服务器。angular2-jwt缺少头部授权
我使用angular2,智威汤逊,这是我在app.module.ts
export function getAuthHttp(http) {
return new AuthHttp(new AuthConfig({
globalHeaders: [{'Accept': 'application/json'}],
tokenName: 'my_token',
tokenGetter: (() => localStorage.getItem('my_token')),
}), http);
}
和配置,然后,我的HTTP调用我这样使用它
getQuestions(): Observable<any> {
return this.authHttp
.get(`${this.settings.api}/questions`)
.map((response: Response) => response.json());
}
哪里this.settings.api是经过身份验证的网址。
事情是,这是我的以前的PHP服务器,因为它工作正常。 我刚刚更改了网址以便在Node中使用我的新服务器,现在由于令牌未添加到标头中,调用失败。
当我与镀铬控制台检查头,因为我看到这个请求:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en,es-ES;q=0.8,es;q=0.6
Access-Control-Request-Headers:authorization
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:3050
Origin:http://evil.com/
Pragma:no-cache
Referer:http://localhost:8100/
User-Agent:...
如果我没有错,应该有一个有Authorization: Bearer token
,但它缺少。
我检查了在获取AuthHttp时是否可以检索到令牌并且它正在工作,所以令牌存在并且可以访问。
任何想法? 谢谢,
编辑 我开始认为这可能与CORS,因为我的老PHP服务器在另一台机器,而新的节点是在我自己的机器。 难道这是它吗?在这种情况下如何解决它?
使服务器向服务器请求 –
不知道该怎么做,这是要在服务器还是在前端配置?或两者? – David
服务器应配置为通过cors请求 –