angular - Ionic 4 - Lambda - Cors 错误:CORS 标头中缺少令牌“观众”
问题描述
我在我的电脑(本地主机)上运行了一个离子应用程序,从我的 Lambda 应用程序访问路由。当我尝试一条路线时,我收到此错误:
跨域请求被阻止:同源策略不允许读取 /dev/login 处的远程资源。(原因:CORS 预检通道的 CORS 标头“Access-Control-Allow-Headers”中缺少令牌“受众”)。
这是来自本地主机,还是我尝试从中运行路由的 url?我该如何解决这个问题?
我可以在浏览器中访问根 url 路由,没有错误。
解决方案
请看下面的解释。
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowHeaderFromPreflight
基本上,您在服务器端定义了一个“允许”标题列表(Access-Control-Allow-Headers),在您的情况下,标题“观众”是不允许的。因此,要修复它,您需要编辑列表并将其添加到服务器端。
我可能错了,但我坚信你不需要这个标题。我猜正在发生的事情是您正在获取 JWT 令牌,但随后不仅使用带有值“承载 XYZ”的标头“授权”,其中 XYZ - 您的令牌,您还添加了“观众”(我相信这是也来自 JWT 响应)。如果这是正确的,使用“授权”就足够了。
JWT 和 Ionic 的示例:https ://devdactic.com/ionic-4-jwt-login/
推荐阅读
- java - scanner.nextLine() 不接受循环输入
- javascript - Quasar vue:如何在 quasar vue 中创建一个多输入字段作为附加图像?
- docker - 使用 go-sqlite3 CGO 启用包的 docker 构建速度非常慢
- python - python线程没有启动/超慢
- sql - 参加最后 3 小时并按 5 分钟分组
- java - MongoDb - 不在适当的位置添加数组对象,而是将其添加到根目录
- sas - 用另一个数据集突出显示相应的行号
- azure - Azure 索引错误:找到没有类型名称的资源,但未指定预期类型。这是什么意思?
- bash - 替换找到的第一个文件中的字符串
- javascript - 如何将 json 映射转换为数组?角