我正在使用php编写一个带有Angular2前端和REST WebAPI后端的项目。
我一直在使用npm's
lite服务器(又名npm start
)运行/调试前端。到目前为止,我一直在使用in-memory-web-api
来提供数据,但我已准备好开始从后端使用实际数据。
在生产中,前端和后端都将从同一个Apache服务器提供,但在开发中我一直使用npm
来运行Angular2和一个单独的Apache服务器来运行API。
我的问题是npm
在localhost:3000
和Apache localhost:80
上运行。这会产生跨域安全问题,而我可以让Angular2应用程序获取数据的唯一方法是在我的REST API上启用CORS。我不想在后端启用CORS,如果我可以避免它,因为我担心它可能会以某种方式进入生产。
到目前为止,npm's
服务器非常好用,因为它会自动编译我的.ts文件,并会在检测到文件更改时刷新浏览器。我真的不想将我的Angular2开发移动到Apache,除非有办法保留这些不错的功能。
有没有办法在不启用CORS的情况下将这两件事分开?
如果没有,有没有办法可以合并两者,同时保持npm的不错功能?
答案 0 :(得分:1)
配置开发应用程序服务器以代理对开发REST服务器的请求。然后发出相同的原始请求。
或者,使用.htaccess
打开CORS标头,但将其添加到.gitignore
(或您的版本控制系统等效),以确保其停止生产。
或者,如果您的REST服务器具有配置系统。使用它来开发开发中的CORS(并再次确保配置文件不受版本控制)。