嘿,我遇到了一个问题,当我在本地运行服务器和应用程序时没有问题,但是当将它们分别推送到各自的服务器时,应用程序不会返回cookie。有人知道如何解决这个问题吗?
服务器:
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Credentials', true);
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept'
);
next();
});
反应:
const request = axios.post(`${url}/api/login`, {
email,
password,
withCredentials: true,
headers: { crossDomain: true, 'Content-Type': 'application/json' },
})
.then(response => response.data);
答案 0 :(得分:1)
我想出了解决方法。我用过:
服务器:
app.use(
cors({
credentials: true,
origin: 'http://myapp.com',
})
);
反应:
export function loginUser({ email, password }) {
axios.defaults.withCredentials = true;
const request = axios
.post(`${url}/api/login`, {
email,
password,
withCredentials: true,
headers: { crossDomain: true, 'Content-Type': 'application/json' },
})
.then(response => response.data);
return {
type: 'USER_LOGIN',
payload: request,
};
}
答案 1 :(得分:0)
尝试使用默认值axios.defaults.withCredentials = true
这是已知的bug,带有axios