2013-03-20 57 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(); 
}); 
相关问题