在对keystonejs apis进行http req时,我一直收到一个CORS错误,该浏览器工作正常。我将这个中间件添加到middleware.js中,并在发出请求时调用它:
路由/ middleware.js
exports.corsAPI = function (req,res,next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
keystone.initAPI(req, res, next);
};
并修改了routes / index.js
exports = module.exports = function(app) {
app.get('/api/post/list', middleware.corsAPI, routes.api.posts.list);
app.all('/api/post/create', middleware.corsAPI, routes.api.posts.create);
app.get('/api/post/:id', middleware.corsAPI, routes.api.posts.get);
app.all('/api/post/:id/update', middleware.corsAPI, routes.api.posts.update);
app.get('/api/post/:id/remove', middleware.corsAPI, routes.api.posts.remove);
}
答案 0 :(得分:0)
我建议您只使用cors模块而不是编写自己的标题:
答案 1 :(得分:0)
在keystone.js中:
keystone.set('cors allow origin', true);
keystone.set('cors allow methods', true);
keystone.set('cors allow headers', true);
在routes \ index.js中: 之一:
app.get('/api/stuff', [keystone.middleware.api, keystone.middleware.cors], routes.api.workshop.getStuff);
或:
app.get('/api/stuff', keystone.middleware.cors, routes.api.workshop.getStuff);
和所有其他路线相应。 这就是启用CORS标头所必需的。