【发布时间】:2018-10-13 05:32:28
【问题描述】:
问题是angular没有向api发送令牌,授权:令牌没有出现在Resquest Header中(Nodejs中的api)
这是发出 http 请求的组件(使用标头获取)
ngOnInit() {
this.getPets('/api/animals/all');
}
getPets(URL) {
const userToken = localStorage.getItem('token');
const headers = new HttpHeaders().set('Authorization', userToken);
console.log(headers);
this.httpClient.get(api_url + URL, { headers } ).subscribe(pets => {
this.data = pets;
this.petsHome = this.data.pets;
console.log(this.petsHome);
});
}
这里是定义 CORS 的 api.ts
class Api {
public express: Application;
constructor() {
this.express = express();
this.middleware();
}
middleware(): void {
this.express.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
next();
});
this.express.use(morgan('dev'));
this.express.use(bodyParser.urlencoded( { extended: true } ));
this.express.use(bodyParser.json());
this.express.use(Handlers.errorHandlerApi);
this.router(this.express, Auth);
}
private router(app: Application, auth: any): void {
Routes.initRoutes(app, auth);
}
}
导出默认new Api().express;
请求不需要令牌,正常发生并响应 200 OK。例如通常不需要令牌的登录(没有标题)
【问题讨论】:
-
能否粘贴console.log(headers)的结果; (角度)
-
我添加了图片
标签: node.js angular api http-headers httprequest