0

在我使用 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时,如果两者都在同一个域但不同的子域上,这会消失吗?

4

1 回答 1

2

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

  • 仪表板.lv.me:8000 -> ap.lv.me:8000
  • ap.lv.me:8000 -> ap.lv.me:3000(IE 除外)
于 2013-08-23T14:16:16.600 回答