【问题标题】:Fetching data from angular directive using express interface使用快速接口从角度指令中获取数据
【发布时间】:2014-06-19 01:36:11
【问题描述】:
我使用 express 和 mongoose 创建了一个接口,用于从 mongodb 获取数据并将其发送到客户端。当我在 linux 终端和 html 浏览器上使用 wget 获取数据时,它工作正常。但是当我使用 angular js $http 方法请求数据时,它会显示以下错误。
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:9000' is therefore not allowed access.
谁能建议我如何解决这个问题的错误。提前谢谢。
【问题讨论】:
标签:
angularjs
mongodb
mongoose
【解决方案1】:
您正在尝试从不同的主机/域/IP 进行 AJAX ($http.get) 调用。我的猜测是你在http://localhost 或http://127.0.0.1 上运行你的Angular 应用程序,而你在http://127.0.0.1:9000 上运行Node,这是一个不同的Origin。有两种解决方案:
- 在相同的主机名上运行它们,例如都在本地主机上或都在 127.0.0.1 上。
- 从 Node 添加 Access-Control-Allow-Origin HTTP 标头,允许您的 Angular 主机(源)通过 AJAX 访问后端。
所有这一切的原因是一种安全措施,因此网站不能在没有明确许可的情况下获取互联网上的任何其他网站。否则,恶意网站可能会对您的 PayPal 或银行帐户进行 AJAX 调用。