Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies 尝试使用react和fetch获取然后发送cookie_Cookies_Reactjs_Fetch - Fatal编程技术网

Cookies 尝试使用react和fetch获取然后发送cookie

Cookies 尝试使用react和fetch获取然后发送cookie,cookies,reactjs,fetch,Cookies,Reactjs,Fetch,几个小时以来,我一直在尝试在我的应用程序中实现一些身份验证组件,但我仍然不了解正在发生的一些事情 基本上,我想向我的API发送一个POST请求,其中包含一些凭证,如果凭证有效,它会向我发送一个cookie。然后,cookie应该包含在将来对我的API的所有请求的头中(我认为这是自动的) server.js(我的API现在是一个带有JSON文件的模型) 现在,console.log(data)总是显示我的令牌(如果我的凭据错误,则显示null),但是cookie不起作用 请参见,我收到了Set

几个小时以来,我一直在尝试在我的应用程序中实现一些身份验证组件,但我仍然不了解正在发生的一些事情

基本上,我想向我的
API
发送一个
POST请求
,其中包含一些
凭证
,如果凭证有效,它会向我发送一个
cookie
。然后,cookie应该包含在将来对我的API的所有请求的头中(我认为这是自动的)

server.js(我的API现在是一个带有JSON文件的模型)

现在,
console.log(data)
总是显示我的令牌(如果我的凭据错误,则显示null),但是cookie不起作用

请参见,我收到了
Set Cookie
标题,但我的页面上仍然没有Cookie

即使我成功地获得了cookie,当我尝试使用
document.cookie=“access\u token=123”创建cookie时
然后再次发送请求,我的cookie不会像jQuery Ajaxcall那样出现在我的头中:

我读到,添加
凭证:“include”
可以节省时间,但不幸的是没有

我错过了什么


提前谢谢

我也有同样的问题,我在Peter Bengtsson的评论中找到了答案:

如果我理解,在您的情况下,取回应该是:

fetch(loginUrl, {
  credentials: 'same-origin',
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(this.state),
})

是的,证书:“同源”非常有效。谢谢分享这段代码。@Alessio Santacroce。如何访问cookie值??
...
handleConnection(e) {
    e.preventDefault();

    const email = this.state.email.trim();
    const password = this.state.password.trim();
    if (!email && !password) {
      return (false);
    }

    fetch(loginUrl, {
      method: 'POST',
      headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json',
        credentials: 'include',
      },
      body: JSON.stringify(this.state),
    })
    .then((response) => response.json())
    .then((data) => {
      console.log(data);
    })
    .catch((error) => {
      console.warn(error);
    });

    return (true);
  }
...
fetch(loginUrl, {
  credentials: 'same-origin',
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(this.state),
})