【发布时间】:2013-11-22 06:28:30
【问题描述】:
我目前正在开发一个带有节点 REST 服务的 AngularJS 客户端。当我尝试在本地使用 REST 服务时出现此错误:
XMLHttpRequest cannot load http://tasks.dev:12345/articles. Origin http://tasks.dev:8080 is not allowed by Access-Control-Allow-Origin.
我已经尝试在我的 hosts 文件中将 localhost 设置为 tasks.dev 并在一个简单的网络服务器中运行应用 Angular 应用。我还能做什么?
【问题讨论】:
-
既然你添加了
cors标签,你设置了CORS了吗? -
@Prinzhorn 这就是重点:在这种情况下我该如何设置?在另一种情况下,您将使用 JSONP 或类似的东西,但现在我使用具有不同端口的同一主机(localhost 或 tasks.dev)并且它不起作用。这是为什么呢?
-
@schlingel 因为您的浏览器使用三元组
{protocol, host, port}作为来源。如果其中一项更改,您需要启用 CORS 支持。如果你碰巧使用 Express,see this page. -
@robertklep 谢谢!我完全忘记在节点站点添加 CORS 标头...你是对的!