2013-01-20 43 views
4

我有一個在端口AAAA上運行的API服務器和在開發機器上的端口BBBB上運行的JS前端應用程序(emberjs,使用yeoman)。在現場服務器上,這些端口將是相同的。不幸的是,在開發機器上遇到了跨源問題。JS和API服務器在不同端口上的交互

我該怎麼辦?

PS:目前我使用

open -a Google\ Chrome --args --disable-web-security 

啓動Chrome和在JS API使用絕對根路徑http://localhost:8888/解決了這個。但我並不是硬編碼網址和特殊標誌的粉絲。如果有更好的解決方案,請告訴我!

+1

假設您無法更改開發環境,則可以使用允許您放鬆(或刪除)跨域策略的瀏覽器進行測試。 (Chrome允許通過命令行開關。)但我認爲最好是讓開發環境反映生產環境。 – nnnnnn

+0

是的,我這樣做使用鉻 - 但方法是脆弱的,因爲我必須使用硬編碼的網址的端口。 –

+0

如果您可以轉發導致404到另一個端口的任何請求,那將會很好。這樣,你可以使用相對的網址,假設對API的請求不會在那裏。 – HMR

回答

0

除了使用鍍鉻與--disable-web-security,我用這個片段,以避免硬編碼的API起源

var origin = location.origin.replace(/localhost:(\d+)/, 'localhost:8888'); 

,只改變了當地的發展。

相關問題