在使用rack-cors(https://github.com/cyu/rack-cors)之前,我在Rails应用程序和我的JS前端应用程序中遇到了CORS问题。
JS前端应用程序将成为我的Rails应用程序的子域。所以我不应该在制作中遇到这个问题。但是在本地,我在服务器上运行我的前端应用程序:
python -m SimpleHTTPServer
然后我通过http://dashboard.lvh.me:8000
访问它。所有调用都发送到后端rails应用程序api.lvh.me:3000
。
在不处理CORS的情况下执行请求时,出现CORS错误。当两者位于同一子域(lvh.me)时,为什么会出现CORS错误?这种情况发生在所有浏览器中。
为什么我需要使用rack-cors?这也会在生产中发生吗?现在,我正在运行rails s
。当使用nginx时,如果它们位于同一个域,但是不同的子域,这会消失吗?
答案 0 :(得分:1)
相同的原始策略适用于整个域,甚至是端口号(IE中除外)。从dashboard.lv.me:8000向api.lv.me:3000发送请求是跨源请求。实际上,这些也是跨源调用: