Как пропустить куки через CORS? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть проект, который отправляет HTTP-запросы от клиента, используя Axios

axios.create({
    baseURL: `http://localhost:8081/`,
    withCredentials: true
  })

И я предполагаю, что это позволяет куки-файлы - которые, я уверен, они отображаются в браузере, прежде чем вы просите - чтобы быть отправлены с запросами.

Проблема возникает в серверной части, когда эта ошибка отображается в журнале:

Ответ на предварительный запрос не проходит проверку контроля доступа: значение заголовка «Access-Control-Allow-Origin» в ответе должно не должен быть подстановочным знаком '*', когда режим учетных данных запроса 'включают'. Происхождение 'http://localhost:8080' поэтому не допускается доступ. Режим учетных данных запросов, инициированных XMLHttpRequest управляется атрибутом withCredentials.

Я пробовал это:

app.use(cors({
  //origin : to be set later
  credentials: true,
}))

и это вместо:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
  res.header("Access-Control-Allow-Credentials", true);
  next();
});

но ни один из них не работает.

Любая помощь будет оценена.

Редактировать 1: Я использую cookie-парсер, и я уверен, что он должен прикрепить куки к требованию.

В моем файле app.js нет других промежуточных программ, которые могут вызвать такую ​​проблему, кроме CORS и Cookie-parser.

Редактировать 2: по запросу я вызвал эту команду:

curl -v -X ОПЦИИ http://localhost:8081

И вот результат:

Rebuilt URL to: http://localhost:8081/
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8081 (#0)
> OPTIONS / HTTP/1.1
> Host: localhost:8081
> User-Agent: curl/7.47.0
> Accept: */*
>  < HTTP/1.1 204 No Content < X-Powered-By: Express < Access-Control-Allow-Origin: * < Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE < Vary: Access-Control-Request-Headers < Content-Length: 0 < Date: Sun, 02 Sep 2018 23:31:11 GMT < Connection: keep-alive
...