我們最近一直在研究一個相當現代化的網絡應用程序,並準備好將它部署到alpha/beta並獲得一些真實世界的體驗。從webservices託管靜態內容到不同的域,如何避免跨域?
我們有基於ASP.Net的Web服務(Web API)和一個JavaScript前端是使用主幹100%的客戶端MVC。
我們已經購買了我們的域名,併爲這個問題的緣故我們的部署是這樣的:
webservices.mydomain.com(web服務)
mydomain.com(JavaScript的前端)
如果JavaScript的嘗試去跟上我們吹了跨域問題的子域名的web服務,我和CORS玩耍了,但我並不滿足於跨瀏覽器的支持,所以我就指望這一點作爲選項。
在我們的開發PC上,我們使用IIS反向代理將所有請求轉發到mydomain.com/webservices到webservices.mydomain.com - 這解決了我們所有的問題,因爲瀏覽器認爲所有的東西都在同一個域中。
所以我的問題是,在一個公共的部署,這是怎麼問題最常見的解決了嗎?反向代理是否是正確的方式?如果有的話,是否有託管服務爲這種情況提供反向代理?有更好的方法來部署這個?
我想用CloudFront的CDN作爲我們所有的服務器/服務與亞馬遜託管的,我真的在努力尋找的,如果CDN雖然可以支持這種類型的設置信息。
感謝
也許我的個人實現過於簡單(如果有的話,我也會對其他人的評論感興趣)。 我想缺少的是前/後之間的數據傳輸是什麼?在我的簡單實現中,前端通過JSONP與後端(WCF服務)進行通信,以實現「真正的」跨域實現。 如果我需要「代理」,那麼它的一個「應用代理」 - 在mydomain.com的前端將與mydomain.com上的處理程序(即ashx)進行通信,該處理程序在myotherdomain.com上將http請求「代理」到WCF。 – EdSF 2012-03-17 05:37:42
你使用JQuery還是純JavaScript? (在JQuery的情況下,你可以使用這個:http://usejquery.com/posts/the-jquery-cross-domain-ajax-guide) – ONOZ 2012-03-26 09:51:45
對於WebAPI,你可以查看這個帖子,關於啓用CORS和JSONP應該工作跨越瀏覽器http://goo.gl/KjT6y – cecilphillip 2012-03-26 14:36:13