2013-08-23 40 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除外)
相關問題