如何使用fetch
或axios
发送身份验证标头?
我试过这样做但是在我的客户端没有任何具有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);

答案 0 :(得分:1)
两个来源被认为是“相同的”,他们必须分享:
您正在http://localhost:3000
向http://localhost:5000
发出请求,因此正在提出跨域请求。
credentials: "same-origin"
...但您已将凭据(例如Authorization
)限制为同源请求。
mode: "no-cors",
要发送包含跨域请求的凭据,您必须通过CORS获得权限。
您不能设置no-cors
。
你需要
mode: "cors",
credentials: "include"