axios 当处理来自后端的响应时,本地主机上的浏览器不会接收到Cookie(express js)

ny6fqffe  于 12个月前  发布在  iOS
关注(0)|答案(1)|浏览(159)

我在执行授权cookie时遇到了一些问题。
当我从我的react前端(运行在端口3000上)向我的API(运行在端口8080上)发出GET请求时,我用express设置的cookie在前端中没有收到。
我正在为每个客户端类型的应用程序实现一个子域,并且在正常的“localhost”上正确地接收cookie。然而,当我尝试使用example.localhost时,根本没有接收到cookie。
我试着用axios和普通的fetches来做这件事,我似乎不能让它工作。
我使用了Same-Site,Secure等,并在CORS和Axios中将凭据设置为true。
这里有几个片段:

app.get('/api/dashboard/overview', (req, res) => {
    res.cookie("test", "test", {httpOnly: false}); //Already tried Secure etc
    res.send('Cookie was set!');
});
getRequest('/dashboard/overview').then(response => {
     console.log(response.data);
     return response;
});
export function getRequest(url) {
    return axios.get(apiUrl + url, {withCredentials: true, headers: { crossDomain: true, 'Content-Type': 'application/json' }});
}

我认为问题出在subdomain.localhost的东西上,但有时cookie也不会加载到正常的localhost上。
我已经尝试向vhost添加域,但它也不起作用。
希望你们能帮上忙!

lvmkulzt

lvmkulzt1#

如果你的web服务器运行在localhost:8080上,试着将这个属性添加到cors对象中。Might可以做到这一点。

origin: 'http://localhost:8080'

字符串

相关问题