如何告诉Express忽略OPTIONS请求?

时间:2014-11-25 14:37:07

标签: angularjs node.js express

我使用Express 4和Node.js和Angular.js。

到目前为止,CORS一直是PITA。

目前我正在看到一个OPTIONS请求触发我在快递中的路由,然后是一个POST请求触发我的路由。因此,一切都被触发了两次。

我正在api.js中使用cors:

var cors               = require('cors');
app.use(cors());

但是,如上所述,我的POST路由不仅会被CORS击中两次,而且我无法从我本地主机上的任何内容中POST var find = function(req, res, next) { return DOC.findById(req.body.id, function(err, doc) { if(!doc) { res.status(404).send({ status: 'Not Found' }); } else if (!err) { res.status(200).send({ status: 'OK', doc:doc }); } else { res.status(500).send({ status: 'Server Error' }); }; }); }; 。我终于需要解决这个问题。任何帮助表示赞赏。

路线功能

我的典型路线:

if (req.body.id === undefined) {

  console.log("[Exception] OPTIONS/CORS");
  res.status(304).send('Not Modified');

} else {
  ...

哈克

我正在解决这个丑陋的黑客的烦恼:

app.get (...);
app.get (...);
app.put (...);
app.post ('/path/', expressJwt({secret:secret}), find);
app.delete (...);
app.post (...);
app.get (...);

路线设置

..Cross-Origin Request Blocked: The Same Origin Policy disallows..

在Firebug中我看到了:

{{1}}

0 个答案:

没有答案