(NodeJS / AngularJS)带有' x-auth'的POST请求令牌到服务器,但令牌似乎在预检中丢失(尽管没有错误)

时间:2018-06-19 04:30:42

标签: angularjs node.js cors

背景

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

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

我也在本地服务器的localhost / Heroku上有一个简单的Angular2客户端:

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

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

我根据自己的知识配置了我的CORS内容,如下所示:server.js:

CORS配置图 CORS configuration pic

问题

On Postman我测试了POST请求,得到了预期的响应 - 一个JWT到期错误:

Postman POST pic Postman POST pic

但是,我不能在我的客户端得到相同的回复 - 相反,我必须提供JWT'错误:

客户POST照片 Client POST pic

正如您在上面的图片中看到的那样,我知道我实际上正在附加一个令牌,因为我控制它。记录它。这是代码的照片:

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

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

DELETE错误响应 DELETE error response

删除代码 DELETE code

所以是的,我很困惑。我的猜测是我必须更多地配置我的CORS才能在POST请求中以某种方式允许x-auth头?即使我认为它应该已经使用我当前的配置。

1 个答案:

答案 0 :(得分:0)

您在邮寄请求中提供正文而不是标题。 Angular POST request

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

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