KeystoneJS: проблема с Cors

Я хочу включить CORS. поэтому я установил keystone.set('cors allow origin', true); и иметь это в моем маршрутизаторе: app.all('/api*', keystone.middleware.cors);

но это не работает.

Мне нужно изменить createDynamicRouter в keystone/lib и добавить это в

router.all('/api*', function (req, res, next) {
console.log('------------------------------------------------');
console.log('Notice: Enabling CORS headers.');
console.log('------------------------------------------------');
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow Methods','GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});

Я создал модель и использовал автоматически созданные маршрутизаторы.

я сделал что-то неправильно? Я хочу включить cors в свой код, а не в код ядра keystone.

Спасибо. микесо


person mikeso    schedule 14.02.2017    source источник


Ответы (1)


Эта проблема GitHub может быть вам полезна. А именно, вам может понадобиться добавить этот код в ваш файл routes/index.js:

app.all('/api*', keystone.middleware.cors);
app.options('/api*', function(req, res) {
   res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-XSRF-TOKEN');
   res.sendStatus(200);
});
person Shea Hunter Belsky    schedule 15.02.2017
comment
Я добавил приведенный выше код в свой маршрутизатор, но он не работает. У меня есть список моделей, и API-интерфейс маршрутизатора этой модели автоматически генерируется ядром Keystone JS. но если я добавлю приведенный выше код в createDynamicRouter.js, он сработает. Я не уверен, что я сделал неправильно - person mikeso; 15.02.2017