Javascript 尝试使用Express设置cookie时,我做错了什么

Javascript 尝试使用Express设置cookie时,我做错了什么,javascript,node.js,reactjs,express,cookies,Javascript,Node.js,Reactjs,Express,Cookies,我正在尝试在登录后将cookie发送回我的react应用程序, 在我的服务器中,我有一个测试响应: res.status(200).cookie('nameOfCookie', 'cookieValue', { maxAge: 1000* 60 * 60 }).end(); 在我的应用程序中 Axios.post('http://localhost:5000/User/login', userDetails).then(res => { console.log(JSON.stri

我正在尝试在登录后将cookie发送回我的react应用程序, 在我的服务器中,我有一个测试响应:

res.status(200).cookie('nameOfCookie', 'cookieValue', { maxAge: 1000* 60 * 60 }).end();
在我的应用程序中

Axios.post('http://localhost:5000/User/login', userDetails).then(res => {
    console.log(JSON.stringify(res))
    this.props.history.push('/list');
})
通过呼叫接收响应

{“数据”:“状态”:200,“状态文本”:“确定”,“标题”:{“内容长度”:“0”},“配置”:{“url”:“方法”:“发布”,“数据”:“{“电子邮件”:“a\”,“密码”:“a\”,“标题”:{“接受”:“应用程序/json, 文本/纯文本, /,“内容类型”:“应用程序/json;字符集=utf-8”},“transformRequest”:[null],“transformResponse”:[null],“超时”:0,“xsrfCookieName”:“XSRF-TOKEN”,“xsrfHeaderName”:“X-XSRF-TOKEN”,“maxContentLength”:-1},“请求”:{}

但是没有饼干被设置,谁能告诉我这里的问题是什么? 谢谢-

我也有

app.use(cookieParser());

作为第一个应用程序使用,正如建议的那样,但这没有帮助,react应用程序无法设置cookie,因为后端应用程序运行在不同的端口上,因此存在跨域cookie问题

您必须在后端和
Axios
请求中设置以下标题,然后使用凭据设置
:true

凭证: 要用于请求的请求凭据:
省略
同源
包含
。若要自动发送当前域的Cookie,必须提供此选项。从铬50开始

在Axios中

withCredentials
指示是否应使用凭据发出跨站点访问控制请求默认值:withCredentials:false

示例:

res
  .set("Access-Control-Allow-Origin", "http://localhost:3000")
  .set("Access-Control-Allow-Credentials", "true")
  .set("Access-Control-Allow-Methods", "GET, POST")
  .set("Access-Control-Allow-Headers", "Content-Type, *")
  .status(200).cookie('nameOfCookie', 'cookieValue', { maxAge: 1000 * 60 * 60 }).end();

我终于明白了:

事实证明,默认情况下Axios的“withCredentials”设置为false,因此我创建了一个带有覆盖的新实例,并使用了它

var myAxios = Axios.create ({
    withCredentials: true
})
这还需要我更新cors以接受这些凭据

app.use(cors({credentials: true, origin: 'http://localhost:3000'}));
app.use(cors({credentials: true, origin: 'http://localhost:3000'}));