繁体   English   中英

使用fetch或axios发送身份验证标头

[英]Send Authentication header with fetch or axios

如何使用fetchaxios发送身份验证标头?

我尝试这样做,但是在我的客户端上没有任何带有Authentification值的标头。

这是我的代码示例。

 let myHeaders = new Headers(); myHeaders.append("Authorization", token); myHeaders.append("Access-Control-Allow-Origin", "*"); myHeaders.append("Access-Control-Allow-Origin", "*"); let req = { method: "GET", headers: myHeaders, mode: "no-cors", credentials: "same-origin", } fetch('http://localhost:5000/secret', req) .then(res => console.log(res)) .catch(err => console.log(err)) 

我尝试在我的node.js代码上进行检查。

 router.route("/").get(passportJWT, SecretController.secret); 

为了使两个来源被视为“相同”,它们必须共享:

  • 方案(例如https)
  • 主机名
  • 港口

您正在从http://localhost:3000http://localhost:5000发出请求,所以正在发出跨域请求。

 credentials: "same-origin" 

…但是您已将凭据(例如Authorization )限制为同源请求。

 mode: "no-cors", 

要发送带有跨域请求的凭据,您必须具有通过CORS的许可。

您不得设置no-cors

你需要

mode: "cors",
credentials: "include"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM