2013-06-21 54 views
2

我有一臺服務器的設置,一切都進行得很順利,但我得到約咕嚕服務器:不支持CORS,給人錯誤

.... is not allowed by Access-Control-Allow-Origin 

這是因爲這兩個承載我的angularjs網站是繁重的服務器非常奇怪的錯誤在端口9000,我的休息服務端口8678.

無論如何,我發現這個

https://gist.github.com/Vp3n/5340891 

這也解釋瞭如何啓用CORS繁重的服務器上,但我的呼嚕聲文件好好嘗試一下牛逼他同...這是我目前我的呼嚕聲文件的一部分

connect: { 
     options: { 
     port: 9000, 
     // Change this to '0.0.0.0' to access the server from outside. 
     hostname: 'localhost' 
     }, 
     livereload: { 
     options: { 
      middleware: function (connect) { 
      return [ 
       lrSnippet, 
       mountFolder(connect, '.tmp'), 
       mountFolder(connect, yeomanConfig.app) 
      ]; 
      } 
     } 
     }, 
     test: { 

任何幫助非常感激提前

回答

9

謝謝我不知道你所說的「我的呼嚕聲文件的意思沒有按看起來不一樣「,但你需要閱讀grunt-contrib-connect文檔的文檔,它告訴你middleware選項接受一個函數,該函數應該返回一箇中間件數組。

引用的要點是允許CORS的簡單中間件。

在你的情況下,它看起來像:

connect: { 
    options: { 
    port: 9000, 
    // Change this to '0.0.0.0' to access the server from outside. 
    hostname: 'localhost' 
    }, 
    livereload: { 
    options: { 
     middleware: function (connect) { 
     return [ 
      lrSnippet, 
      mountFolder(connect, '.tmp'), 
      mountFolder(connect, yeomanConfig.app), 
      function(req, res, next) { 
      res.setHeader('Access-Control-Allow-Origin', '*'); 
      res.setHeader('Access-Control-Allow-Methods', '*'); 
      next(); 
      } 
     ]; 
     } 
    } 
    }, 
    test: { 
+0

我有同樣的問題,但這並沒有解決它?你可以看一下嗎? http://stackoverflow.com/questions/19391711/acces-control-allow-origin-with-grunt-server-and-flask-socketio-app?lq=1 – arnoutaertgeerts

+1

如何定義lrSnippet參數?你能提供整個gruntfile嗎? – paweloque

+0

@paweloque這是一個古老的符號連接,它改變了grunt-contrib-connect – netalex

0

我面臨同樣的問題,不能讓繁重的正確行爲。下面是從Gruntfile.js相應的片段:

connect: { 
    options: { 
    port: 9000, 
    // Change this to '0.0.0.0' to access the server from outside. 
    hostname: '0.0.0.0', 
    livereload: 35729 
    }, 
    livereload: { 
    options: { 
     open: true, 
     base: [ 
     '.tmp', 
     '<%= yeoman.app %>' 
     ] 
    } 
    }, 

什麼是正確的方式來更新它與中間件設置Access-Control-Allow-...頭以*

+0

我有同樣的問題,你能解決它。 –

+0

我不確定它是否會對您有所幫助,但是我遇到了同樣的問題,並且它似乎並沒有因爲導致CORS問題的前端應用程序而感到煩惱。它是後端(用python/django編寫的API),它不允許CORS。所以我的解決方案是爲後端啓用CORS。沒有需要更改咕嚕聲。 – silentser

+0

是的,我研究出來了,它不是咕嚕咕嚕。我不得不配置$ http請求來允許JSONP。 –