openshift nodejs app cors 502未指定Access-Control-Allow-Origin

时间:2016-02-09 23:13:34

标签: node.js openshift

我正在使用openshift默认的node.js应用程序构建一些原型api但由于某种原因我得到了一个N​​o Access-Control-Allow-Origin头指定错误,并带有以下代码,有人可以解释一下我的内容我做错了:

self.createRoutes = function() {

        self.routes = { };

        self.routes['/api/getusers/:username'] = function(req, res) {

            res.header('Access-Control-Allow-Origin', '*');
            res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
            res.header('Access-Control-Allow-Headers', 'Content-Type');

            client.users.search({query: req.params.username}, function (err, req, result) {
              if (err) {
                console.log(err);
                res.json({'err':JSON.parse(err)});
                return;
              }
              res.json({'success': result});
            });

        };

...

我在其他项目上使用了类似的标题,它工作正常,我猜这里有某种范围问题,但似乎无法弄明白。感谢。

1 个答案:

答案 0 :(得分:1)

我将标题移动到中间件函数而不是路由级别,现在工作正常。

self.app.use(function (req, res, next) {
      res.header('Access-Control-Allow-Origin', '*');
      res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
      res.header('Access-Control-Allow-Headers', 'Content-Type');
      next();
    });