axios未检索cookie

时间:2018-10-06 23:01:39

标签: node.js reactjs cors

嘿,我遇到了一个问题,当我在本地运行服务器和应用程序时没有问题,但是当将它们分别推送到各自的服务器时,应用程序不会返回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);

2 个答案:

答案 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