2013-08-23 35 views
0

在我使用rack-cors(https://github.com/cyu/rack-cors)之前,我在我的Rails应用程序和我的JS前端应用程序中遇到了CORS问题。为什么CORS在使用'lvh.me'时适用于本地主机?

JS前端应用程序将是我的Rails应用程序的子域。所以我不应该在生产中遇到这个问题。然而在地方,我在服务器上运行我的前端应用与:

python -m SimpleHTTPServer

我然后通过http://dashboard.lvh.me:8000访问它。所有的电话都是通过后台导航应用程序到api.lvh.me:3000

在不处理CORS的情况下执行请求时,出现CORS错误。当两者都位于同一个子域(lvh.me)时,为什么会收到CORS错误?这发生在所有浏览器中。

为什么我需要使用机架?这是否也会在生产中发生?现在,我只是在运行rails s。当使用nginx时,当两者位于同一个域但不同的子域时,它会消失吗?

回答

1

相同的源策略适用于整个域,甚至端口号(IE除外)。从dashboard.lv.me:8000向api.lv.me:3000发送请求是一个跨源请求。事实上,这些也都是跨域调用:

  • dashboard.lv.me:8000 - > ap.lv.me:8000
  • ap.lv.me:8000 - > ap.lv.me :3000(IE除外)
相关问题