gpt4 book ai didi

javascript - 即使 header 存在,也无法在浏览器中设置 Cookie

转载 作者:行者123 更新时间:2023-12-03 06:59:34 25 4
gpt4 key购买 nike

我正在努力向我的项目添加 cookie,完整源代码 here ,但我遇到了一个无法正确设置 cookie 的问题。我创建了一个新的 api 路由,它只创建一个 cookie 并向客户端发送一个对象。

server/routes/todo.routes.js

router.get('/todos', (req, res) => {
res.cookie('mycookie', 'a_value')
return res.send([{id:'1',isCompleted:false,text:'something'}])
})

如果我直接调用这个api路由,浏览器会渲染该对象并设置cookie。问题是,当我从渲染页面通过 AJAX 调用此 api 时,我仍然得到相同的响应,但未设置 cookie。 注意:我导出路由器并执行 app.use('/api',exported_object_here),因此 URL 为/api/todos。

共享/actions/todo.actions.js

export const getTodos = () => {
return (dispatch) => {
return fetch('/api/todos')
.then(response => response.json())
.then(todo => dispatch(_receiveTodos(todo)))
.catch(err => dispatch(_errorHandler(err)));
}
};

我不知道为什么浏览器在这种情况下会有不同的行为,尤其是对于如此简单的事情。你们都知道是什么原因造成的吗?

最佳答案

您需要在 XHR 请求 ( https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials ) 上设置 withCredentials

关于javascript - 即使 header 存在,也无法在浏览器中设置 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com