2013-03-20 75 views
0

我正在嘗試udnerstand和Node.js的合作。但是我無法弄清楚,如何使用REST進行數據傳輸。我在端口8000上運行Node.js後端,響應各種GET和POST。我的Angular前端通過運行在端口80上的Apache加載。自然,JavaScript控制檯將其標識爲not allowed by Access-Control-Allow-Origin如何使用REST與Node.js和AngularJS在不同的端口上?

這通常如何解決?我做錯了嗎?我不應該通過Apache運行前端?

回答

1

解決它的一種方法是使用Cross-origin Resource Sharing。瀏覽器支持也不錯。

+0

沒有任何清潔的方式該怎麼辦呢?使用Ang + Node必須有大量的頁面,不要告訴我他們這樣做:-O – Michal 2013-03-20 09:12:28

+0

您可以通過相同的代理來代理這兩個應用程序,而不是使用不同的上下文。 – NilsH 2013-03-20 09:13:53

+0

得到它與http://backbonetutorials.com/cross-domain-sessions/工作感謝指出,如何做到這一點! – Michal 2013-03-20 13:53:42

0

添加到您的Node.js API服務器

server.all('*', function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header('Access-Control-Allow-Methods', 'OPTIONS,GET,POST,PUT,DELETE'); 
    res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); 
    if ('OPTIONS' == req.method) { 
     return res.send(200); 
    } 
    next(); 
}); 
相關問題