没有CORS的Angular2测试数据

时间:2016-09-28 17:56:08

标签: apache angular npm cors

我正在使用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的不错功能?

1 个答案:

答案 0 :(得分:1)

配置开发应用程序服务器以代理对开发REST服务器的请求。然后发出相同的原始请求。

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

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