Restify和vue cors跨域阻止

时间:2017-08-02 12:14:56

标签: cors middleware restify

我有一个运行我的API的restify服务器,我正在定义cors中间件如下:

server.use(restify.acceptParser(server.acceptable));
server.use(restify.queryParser());
server.use(restify.bodyParser({
  multiples: true,
  mapParams: false
}));
server.pre(restify.CORS())
server.use(restify.fullResponse())
server.use(
  function crossOrigin(req,res,next){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
  return next();
});

但我总是收到此错误消息:

跨源请求已阻止:同源策略禁止在https://myroute处读取远程资源...(原因:CORS预检频道未成功)。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况是因为restify.CORS()在新版本中被弃用了,至少我在这里看到了:

https://github.com/restify/node-restify/issues/1151

"将在即将发布的5.x版本中弃用resresy CORS插件,转而使用https://github.com/TabDigital/restify-cors-middleware"

我换了这个插件,一切都恢复了。

答案 1 :(得分:0)

变化:

server.pre(restify.CORS())

为:

server.use(restify.CORS())