用于post方法的Sails.js CORS

时间:2015-06-07 13:22:56

标签: sails.js

我能够使用以下GET请求将CORS用于特定控制器:

'get /url': {
        controller: 'somecontroller',
        action: 'someaction',
        cors: true
    },

但是如果我尝试使用如下的POST,我会收到“拒绝访问”错误:

'post /url': {
            controller: 'somecontroller',
            action: 'someaction',
            cors: true
        },

如何为post方法设置cors?

2 个答案:

答案 0 :(得分:0)

在我有限的研究中,我发现只需添加" cors:true"控制器没有解决问题。 Sails仍然期待post方法的csrf标记。在bootstrap.js文件夹下的config文件中,我在底部添加了以下代码,以使用以下内容禁用路由上的csrf令牌:

sails.config.csrf.routesDisabled = '/url';

如果您有更好的解决方案,请在此处发布。谢谢!

编辑:您也可以在config/csrf.js文件中进行更改。将module.exports.csrf = true;更改为:

module.exports.csrf = {
    routesDisabled: '/url',
};

您可能必须将它用于您的apis

module.exports.csrf = {
    routesDisabled: '/api/*',
};

答案 1 :(得分:0)

在声明路由之前,在config / routes.js中

'OPTIONS /*': function(req, res) { res.send(200); },

并在config / cors.js中尝试放置:

module.exports.cors = {

allRoutes: true,

origin: '*',

credentials: true,

methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',

headers: 'content-type, access-control-allow-origin, authorization'

};