如何使用“cors”库在Express Route上配置CORS

时间:2017-11-18 01:42:55

标签: node.js express cors

我需要在每个端点上为匹配/api/v1/support/*路径的POST请求启用CORS。

我正在向/api/v1/support/graphql发送一个凭证为真的POST请求,但是预检请求(OPTIONS一个)返回401.我不确定我做错了什么。

这是我的配置(请注意,我在下面的示例中更改了虚拟对象的实际域名):

const corsOptions = {
  origin: /mydomain\.com$/,
  credentials: true,
  maxAge: 3600
};
app.options('/api/v1/support/*', cors(corsOptions));
app.post('/api/v1/support/*', cors(corsOptions));

// graphQLRouter is an instance of express.Router()
app.use('/api/v1/support/graphql', [ fowardIP, validateTokenInCookie ], graphQLRouter);

1 个答案:

答案 0 :(得分:1)

你可以试试这个。设置访问控制



const app = express();
const corsOptions = {
  origin(origin, callback) {
    callback(null, true);
  },
  credentials: true
};
app.use(cors(corsOptions));
var allowCrossDomain = function(req, res, next) {
  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,token');
  next();
}
app.use(allowCrossDomain);




这可能对您有所帮助