当它是具有 angular2 的外部源时,标头中没有 jwt 令牌授权

Posted

技术标签:

【中文标题】当它是具有 angular2 的外部源时,标头中没有 jwt 令牌授权【英文标题】:no jwt token Authorization in header when it is an external source with angular2 【发布时间】:2018-05-01 15:28:55 【问题描述】:

我有这个代码(angular2):

let headers = new Headers('Content-Type': 'application/json');
    headers.append('Authorization',  this.authService.currentUser.token)
    let options = new RequestOptions( headers: headers );
    return this.http.get(this.url + 'quote/' , options)

this.url = '/'(本地请求)时,我在标头中有授权:


this.url = 'http://212.227.201.82/' 时,授权令牌消失。

如何包含外部请求的标头授权? 感谢您的帮助

【问题讨论】:

【参考方案1】:

我已经建立了这个问题! 它不是来自前端,而是来自后端! CORS(跨域资源共享)必须在API中开启

使用 ExpressJS 的 EG:

$ npm install cors

简单用法(启用所有 CORS 请求)

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

app.get('/products/:id', function (req, res, next) 
  res.json(msg: 'This is CORS-enabled for all origins!')
)

参考:Allow multiple CORS domain in express js/How to allow CORS?/https://github.com/expressjs/cors

【讨论】:

以上是关于当它是具有 angular2 的外部源时,标头中没有 jwt 令牌授权的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 - HTTP RequestOptions 标头

Angular2:angular-http 标头非常奇怪的行为

Angular2 Spring Boot JWT 缺少响应标头

如何在 Angular2 中设置全局自定义标头?

当通过 JavaScript 填充源时,Html5 音频不会在 Safari 中播放

Angular2 中的 Apollo 客户端自定义标头和附加变量