TLDR-无法确定它作为响应cookie后如何从React发送cookie,不确定我是否需要从浏览器访问它,或者是否隐式包含了它,而只是不使用正确的标头等?谢谢❤
我已经成功地获取了Node.js后端,以便使用cookie解析器通过我的react应用程序将cookie发送到浏览器:
res.cookie('cookieName','myCookie').status(200).send("Log in successful!");
这源于我在React中的提取请求
fetch("http://localhost:5000/login", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Headers": 'x-access-token' //tried with/without this
},
credentials: 'same-origin',
redirect: "follow",
referrer: "no-referrer",
body: JSON.stringify(data)
}).then(res => {
if(res.status === 200){
console.log("success");
}
这似乎有效!如果我检查“网络”标签并查看响应,则其中包含响应cookie:
cookieName:
path:/
value: myCookie
我现在正试图向包括该cookie的后端发送一个请求,以验证会话等,但是当我尝试在服务器上打印cookie时,它说没有一个?是我尝试发送请求的方式,我假设将包含浏览器cookie,但也许我需要以某种方式明确地包含它? 这是我的要求:
checkCookies = () => {
fetch("http://localhost:5000/checkcookie", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
},
credentials: 'same-origin', // also tried "include"
redirect: "follow",
referrer: "no-referrer",
body: JSON.stringify({name: "test"})
})
}.then(...
答案 0 :(得分:0)
默认情况下,提取不使用Cookie。启用Cookie:
fetch(url, {
method: 'GET',
credentials: 'include'
})
.then(...)
您需要在两个调用中设置相同的credentials
值。
在通过Application
标签首次请求后,检查cookie是否存储在浏览器中。