如果我的问题似乎已经解决,请原谅我。这些对我不起作用。
基本上,我是角度6的新用户。我使用http post
对用户进行身份验证。我的代码看起来像这样。
onSubmit(value){
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
observe: 'response' as 'body'
};
this.http.post(Globals.authEndPoint, value, {observe: 'response'})
.subscribe(function(res){
console.log(res);
});
}
在服务器端:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "*");
if (req.method === 'OPTIONS'){
res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, GET' );
return res.status(200).json({})
}
next();
});
这:
res.status(200).header( 'X-Auth-Token', 'token-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x').send(user);
我对angular的请求是这样完成的:
我已经找到了一个像我的question,但是答案对我的情况不起作用。
我认为我做错了什么。 我如何直接在响应后获得令牌。
有什么想法吗?
更新:
我尝试了下面列出的答案。
getConfigResponse(value): Observable<HttpResponse<Config>> {
return this.http.post<Config>( Globals.authEndPoint, value, {observe: 'response'});
}
答案 0 :(得分:1)
您是否尝试过阅读完整的回复?另外,如果您尚未使用Angular 4.3.x及更高版本,我还建议您使用HttpClient。
HttpClient reading the full response
showConfigResponse() {
this.configService.getConfigResponse()
// resp is of type `HttpResponse<Config>`
.subscribe(resp => {
// display its headers
const keys = resp.headers.keys();
this.headers = keys.map(key =>
`${key}: ${resp.headers.get(key)}`);
// access the body directly, which is typed as `Config`.
this.config = { ... resp.body };
});
}