2012-12-20 30 views
0

我在本地運行帶默認設置(端口8888)的MAMP服務器,並且我的Rails應用程序在其默認端口(3000)上運行。設置Rails應用程序以避免必須使用CORS

在生產中,我將運行一個Kentico服務器,該服務器需要通過ajax運行GETPOSTPUT請求到Rails應用程序。

現在,我只是想以某種方式設置它,以便我可以在不需要實施任何形式的CORS的情況下進行開發。由於POSTPUT請求是組合的一部分,因此我無法使用JSONP

有沒有辦法做到這一點,如果是的話,它會轉化爲一次在生產中做同樣的方式?

回答

0

CORS是進行跨域通信的最符合標準的方式。但其他選項包括:

  • 設置代理服務器對服務器端請求代理到您的Rails應用程序
  • 使用基於iframe的解決方案。這涉及到在您的服務器上設置一個頁面,以創建同域XHR請求。然後,您可以使用iframe將此頁面包含在客戶端,並通過postMessage等幀間通信機制與其通信。

這裏的後一技術的概述:http://softwareas.com/cross-domain-communication-with-iframes

+0

我假定這意味着沒有辦法避免某種CORS或跨域溶液。我希望,因爲這兩個服務實際上將被安置在同一臺服務器上,有一種方法可以設置端口,使瀏覽器不會認爲這是一個跨域請求,但聽起來像是不可能的? –

+0

不可以,這在客戶端是不可能的,因爲端口包含在同源策略中。 – monsur

相關問題