2016-02-09 30 views
1

我正在建立一些原型API使用openshift默認node.js應用程序,但由於某種原因,我得到一個無訪問控制允許源頭指定的錯誤用下面的代碼,有人可以解釋我做錯了:openshift nodejs應用程序502沒有訪問控制允許來源指定

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

我將標題移至中間件功能而不是路徑級別,現在工作正常。

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(); 
    }); 
+0

謝謝!我把你的代碼放在我的self.initializeServer = function()中,它可以很好地工作。 – Gregori

相關問題