我正在嘗試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運行前端?
我正在嘗試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運行前端?
解決它的一種方法是使用Cross-origin Resource Sharing。瀏覽器支持也不錯。
添加到您的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();
});
沒有任何清潔的方式該怎麼辦呢?使用Ang + Node必須有大量的頁面,不要告訴我他們這樣做:-O – Michal 2013-03-20 09:12:28
您可以通過相同的代理來代理這兩個應用程序,而不是使用不同的上下文。 – NilsH 2013-03-20 09:13:53
得到它與http://backbonetutorials.com/cross-domain-sessions/工作感謝指出,如何做到這一點! – Michal 2013-03-20 13:53:42