У меня есть приложение реагирования, работающее на localhost: 3000 и сервер nodeJS - express на localhost: 8000, мне нужно отправить запрос POST в API jsreport, но когда я пытаюсь отправить запрос, я получил следующая ошибка:
Доступ к XMLHttpRequest по адресу http://localhost: 5488 / api / report 'from origin' http://localhost: 3000 'имеет был заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: Значение заголовка «Access-Control-Allow-Credentials» в ответе равно «», которое должно быть «true», если режим учетных данных запроса 'включают'. Режим учетных данных запросов, инициированных XMLHttpRequest, управляется атрибутом withCredentials.
Почтовый запрос:
axios.defaults.withCredentials = true;
axios.post('http://localhost:5488/api/report',
{withCredentials: true, crossorigin: true},
{
"template": {
"content": "<h1>Hello {{foo}}</h1>",
"engine": "handlebars",
"recipe": "chrome-pdf"
},
"data": {
"foo": "world"
}
}).then((response)=> {
fs.writeFileSync('/reports/report.pdf', response.content)
}).catch(function (error) {
console.log('AXIOS error: '+ error);
return 'errorReport'
})
Сервер. js:
var corsOptions = {
origin: 'http://localhost:3000',
credentials : true
}
app.use(cors(corsOptions));
app.use((req, res, next) => {
res.header('Access-Control-Expose-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
res.header("Access-Control-Allow-Credentials", true);
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
const err = new Error('Not Found');
err.status = 404;
next(err);
})
Я не понимаю, почему учетные данные пусты Если я использую .withCredentials в ax ios и установил заголовки и конфигурацию cors на сервере.