6

直到昨天我决定在 OS X 上使用 beta 1.0 版本时,我一直在使用 Yeoman 0.9。我使用 Yeoman 来开发一个 Angular 应用程序。

随着我的应用程序的 Yeoman 0.9-->1.0 迁移完成并正常工作,我现在热衷于扩展开发服务器约曼grunt server允许我对另一个团队开发的 API 进行跨域调用,该 API 托管在另一台服务器上,他们已经允许跨域调用。到目前为止,我们一直在使用由 angular.js 提供的假 http 后端。

——旁白——

如果有人正在阅读这篇文章以寻找快速解决方案,我们可以通过在带有 Chrome 的 OS X 上使用这种方法从命令行将--disable-web-security选项传递给 Chrome 来实现跨域调用,但它会关闭所有人的安全性Chrome (大拇指向下),无论如何我们都无法让 Chrome 作为新实例启动。

——结束——

通过一些挖掘,我发现了这篇 Stack Overflow 帖子(通过对这篇帖子的回答),让我很好地了解了如何让grunt 服务器允许跨域调用。它本质上涉及添加一个中间件组件来连接以允许更改标头,以便将“Access-Control-Allow-Origin”设置为“*”或任何喜欢的值。

对 Node.js 一无所知,我可以看到帖子中提到的更改需要在 Yeoman 创建的许多文件中的某个地方进行,但是在哪里?我已经在 Yeoman 设置的“node_modules”目录中对“app.configure”和“connect.listen”进行了一些原始字符串搜索,但我找到了一些命中,其中大部分来自与模块捆绑的示例我不清楚我应该编辑哪个。如果有帮助,这里是我的 Angular 应用程序目录结构的快照:

在此处输入图像描述

如果有人可以给我一些关于可以在哪里进行这些更改的指示,我将非常感激!

4

2 回答 2

2

使用此 github 拉取请求中的方法解决了无节点问题:http: //github.com/angular/angular.js/pull/1454

于 2013-02-22T05:25:43.197 回答
1

您可以使用 Apache 代理并将您的 REST 服务器与 gruntjs(angular.js) 连接。

阿帕奇会这样做:

  • 代理/-> gruntjs
  • 代理/服务 -> REST 服务器

你会使用你的应用程序来访问 Apache,而 angular.js 应用程序会认为它正在与自己对话,所以没有跨域问题。

这是一个关于如何设置的很棒的教程:http: //alfrescoblog.com/2014/06/14/angular-js-activiti-webapp-with-activiti-rest/

于 2014-06-15T10:08:47.817 回答