angularjs 使用Yeoman(1.0)grunt服务器允许跨域调用

r3i60tvu  于 2023-10-15  发布在  Angular
关注(0)|答案(2)|浏览(126)

我一直在使用Yeoman 0.9,直到昨天我决定在OS X上使用beta 1.0版本。我使用Yeoman开发了一个有Angular 的应用程序。
随着我的应用程序的Yeoman 0.9-->1.0迁移的完成和工作,我现在热衷于扩展由yeoman grunt server启动的开发服务器,以允许我跨域调用另一个团队开发的API,托管在另一个服务器上,他们已经允许跨域调用。到目前为止,我们一直在使用angular.js提供的假http后端。

  • -一个旁白*

如果有人正在阅读这篇文章,寻找一个快速的解决方案,我们可以通过在OS X上使用this approach和Chrome,从命令行向Chrome传递 *--disable-web-security * 选项来实现跨域调用,但它关闭了所有Chrome的安全性(拇指朝下),而且我们无论如何都不能让Chrome作为新示例启动。

**--

通过一些挖掘,我发现这个堆栈溢出帖子(通过对this post的回答)给了我一个很好的主意,我需要做什么来让 grunt服务器 * 允许跨域调用。它本质上涉及到添加一个中间件组件来连接,以允许更改头部,以便将“控制-允许-起源”设置为“”或任何人喜欢的值。
对Node.js一无所知,我可以看到帖子中提到的更改需要在Yeoman创建的许多文件中的某个地方进行,但是在哪里?我已经在Yeoman设置的“node_modules”目录中对“app.configure”和“connect.listen”进行了一些原始字符串搜索,但我找到了一些匹配项,其中大部分来自与模块捆绑在一起的示例,我不清楚我应该编辑哪些。
如果有帮助的话,这里是我的angular应用程序的目录结构的快照:

如果有人能给予我一些关于这些变化可能在哪里作出的指示,我真的很感激!

z5btuh9x

z5btuh9x1#

使用github pull request中的方法解决了sans在node上的混乱:http://github.com/angular/angular.js/pull/1454

ecr0jaav

ecr0jaav2#

您可以使用Apache代理并使用gruntjs(angular.js)连接REST服务器。
Apache会这样做:

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

你会使用你的应用程序打Apache和angular.js应用程序会认为这是与自己交谈,所以没有跨域的问题。
这里有一个关于如何设置的很棒的教程:http://alfrescoblog.com/2014/06/14/angular-js-activiti-webapp-with-activiti-rest/

相关问题