【问题标题】:Angular2 Test Data Without CORS没有 CORS 的 Angular2 测试数据
【发布时间】:2016-09-29 02:00:13
【问题描述】:

我正在使用 php 编写一个带有 Angular2 前端和 REST WebAPI 后端的项目。

我一直在使用npm's lite 服务器(又名npm start)运行/调试前端。到目前为止,我一直在使用in-memory-web-api 来提供数据,但我已经准备好开始从后端消费真实数据了。

在生产中,前端和后端都将由同一个 Apache 服务器提供服务,但在开发中,我一直使用 npm 来运行 Angular2,并使用单独的 Apache 服务器来运行 API。

我的问题是npmlocalhost:3000 上运行,而Apache 在localhost:80 上运行。这会产生跨源安全问题,让我的 Angular2 应用程序获取数据的唯一方法是在我的 REST API 上启用 CORS。如果可以避免的话,我不想在后端启用 CORS,因为我担心它可能会以某种方式进入生产环境。

到目前为止,npm's 服务器非常好,因为它会自动编译我的 .ts 文件,并在检测到文件更改时刷新浏览器。除非有办法保留这些不错的功能,否则我真的宁愿不必将我的 Angular2 开发转移到 Apache。

有没有什么方法可以在不启用 CORS 的情况下将这两个东西分开?

如果没有,有没有办法可以将两者合并,同时保留 npm 的优点?

【问题讨论】:

    标签: apache angular npm cors


    【解决方案1】:

    将您的开发应用程序服务器配置为将请求代理到开发 REST 服务器。然后发出同源请求。

    或者,使用 .htaccess 打开 CORS 标头,但将其添加到 .gitignore(或您的版本控制系统的等效项)以确保它不会被生产。

    或者,如果您的 REST 服务器具有配置系统。使用它在开发中打开 CORS(再次确保配置文件不受版本控制)。

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 2019-12-28
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 2017-07-25
      • 2013-07-07
      • 1970-01-01
      • 2017-07-14
      相关资源
      最近更新 更多