我使用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}}