使用凭据和Json Body获取

时间:2018-03-12 19:19:43

标签: javascript fetch-api

需要使用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没有回答。

我该怎么办?

0 个答案:

没有答案