需要使用POST
发送JSON body
个请求。我必须使用fetch
。
原始代码段,有效:
headers = {'Content-Type': 'application/json'};
body = {path: 'path1'};
fetch(url, {
method: 'post',
headers: headers,
body: JSON.stringify(body)
})
.then(response => {//do work});
现在我必须为Http-Only cookies
添加A&A
。
这link有答案。基本上,必须添加另一个参数。
之后更新代码:
fetch(url, {
credentials: 'include',
method: 'post',
headers: headers,
body: JSON.stringify(body)
})
.then(response => {//do work});
服务器在cookie
中看不到header
。
然后通过删除其他所有内容来测试fetch
:
fetch(url, {
credentials: 'include',
method: 'post',
})
.then(response => {//do work});
A&A
部分正常工作,即服务器现在在cookie
中看到header
。所以,回复身体,并不相信它会起作用:
body = {path: 'path1'};
fetch(url, {
credentials: 'include',
method: 'post',
body: JSON.stringify(body)
})
.then(response => {//do work});
正如所料,它没有用。 Express
服务器CookieParser
显示正文为{}
。
添加Content-Type
标题后:
body = {path: 'path1'};
fetch(url, {
credentials: 'include',
method: 'post',
headers: {'Content-Type': 'application/json'}
body: JSON.stringify(body)
})
.then(response => {//do work});
现在,cookie
再次消失了。猜测是因为添加了一个新标头,并替换了由fetch
生成的标头,其中包含cookie
。我错了吗?
在我搜索的过程中,我发现similar question没有回答。
我该怎么办?