angularjs - (NodeJS/AngularJS) 使用 'x-auth' token 向服务器发送请求,但 token 似乎在预检中丢失(尽管没有错误)

标签 angularjs node.js cors

背景

我有一个简单的 NodeJS 服务器托管在 localhost/Heroku 上,它处理 JWT 身份验证,以便将数据添加到注册用户以及其他(不相关)的事物中。

这是 GitHub:https://github.com/mlee93dev/pw-keychain-server

我在 localhost/Heroku 上还有一个用于此服务器的简单 Angular2 客户端:

https://github.com/mlee93dev/pw-keychain-app

目前,出于开发目的,我在服务器中将 JWT 访问 token 配置为仅持续 5 秒。

我已按照我所知配置了 CORS 内容,如 server.js 中所示:

CORS配置图 CORS configuration pic

问题

在 Postman 上,我测试了 POST 请求,并得到了预期的响应 - JWT 过期错误:

postman 发布图片 Postman POST pic

但是,我在客户端上没有得到相同的响应 - 相反,我收到“必须提供 JWT”错误:

客户发帖图片 Client POST pic

正如您在上图中看到的,我知道我在 console.log 时实际上附加了一个 token 。这是代码的图片:

客户端POST代码图片 Client POST code pic

所以更让我困惑的是我的 DELETE 请求(用于注销)也实现了相同的 x-auth token 来请求代码,并且它在 Postman + 客户端中都有效,如下所示:

删除错误响应 DELETE error response

删除代码 DELETE code

是的,我很困惑。我的猜测是我必须更多地配置我的 CORS,以允许 POST 请求上的 x-auth header 以某种方式特定?即使我认为它应该已经使用我当前的配置来做到这一点。

最佳答案

您在发布请求中提供正文而不是 header 。 Angular POST request

因此,在您的帖子请求中只需执行以下操作

this.http.post(yoururl, {},{headers:new Headers({'x-auth':token})})... 它应该可以工作。

关于angularjs - (NodeJS/AngularJS) 使用 'x-auth' token 向服务器发送请求,但 token 似乎在预检中丢失(尽管没有错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920675/

相关文章:

javascript - Angularjs 将 $scope 分配给预先存在的 MVC 模型数据

javascript - 从 JSON 对象列表中删除对象

angularjs - 删除 DOM 元素是否会删除关联的范围?

node.js - 如何将用户从 azure Active Directory 转移到 azure function

tomcat - 具有两个 tomcat 服务器的 CORS 设置

javascript - Angularjs 跨源资源共享 (CORS) post 或 put 方法在 IE8 和 IE9 中不起作用

cors - 无法添加 http ://localhost to DigitalOcean Spaces CORS Rules

javascript - ng-repeat 隐藏一个属性,如果它等于 DateTime.MinValue

node.js - Node.js 中的“异步”/'await' 在 Node.js v8.1.0 中不起作用

node.js - 在 Jailkit 中设置 nodejs 和 npm