偶然发现一件很有意思但却摸不着头脑的事情,我有一个 Rails API 和一个前端 App,它们部署在不同的域名下,显而易见直接访问会有跨域问题。我要问的不是如何解决,实施 CORS 或是做反向代理都可以,我在产品服务器上用的是后者,一切 OK。
不过今天我在本地跑了一下 production,却发现出现了跨域访问的问题。先说一下本地我没有去做 HTTP 反向代理,因为我用的 ember-cli 自带 proxy,一直以来我都是 Rails 跑 development,ember-cli proxy 来在本地开发调试的——我以为 proxy 起作用所以不会出现跨域访问禁止,但我发现我又错了……当我在本地开启 production 之后,浏览器又报跨域访问禁止,这让我很惊讶,原来 ember-cli proxy 没用吗?
于是我切换回 development,然后不使用 ember-cli 的 proxy 功能,果然!访问正常,本地的 proxy 完全就是个摆设。
我不禁开始好奇,production 相比 development 到底做了什么事导致了这个差异呢?我对比了两个环境配置文件,似乎没有哪个设置项是和跨域访问有关的,那么差别究竟在哪里呢?
求指教。