2012-07-25 26 views
0

我在創建一個跨域請求代理的想法中掙扎着。交叉源域代理的優點/缺點?

我有一個jQuery應用程序與API交互,在初始頁面加載時至少向該服務器發出4個請求。兩臺服務器完全在我的控制之下,但它們位於不同的子域。出於這個原因,我一直在朝着使用JSONP來解決跨域請求策略的方向前進。

但是,我真的錯過了一個功能,特別是:獲取請求的HTTP狀態代碼。 JSONP + jQuery的工作方式,請求可以工作,或者不需要。如果沒有,我指定請求的超時時間,如果超時達到了,我假設失敗(沒有辦法知道否則)。我真的很想從API服務器響應404 vs 500錯誤。

這讓我想到一個本地代理可能會更好 - 但它會綁定服務器端資源(保存jQuery應用程序+ Sinatra應用程序的服務器)而不是客戶端資源(瀏覽器)。當每個頁面加載超過4個請求到API服務器時,這當然可以加起來,儘管它不會阻止應用程序加載。

我知道這不是一個真正的「問題」 - 所以請隨時舉報/關閉它,如果不合適的話。不過,我真的很想就這個問題發表一些意見。我通過在Ruby中開發本地代理來介紹一些複雜性。

+1

我改變了你的問題的標籤;它與紅寶石或紅寶石在軌道上無關。 – deefour 2012-07-25 03:12:36

+0

這很晚了,你是對的!對不起, – Brian 2012-07-25 03:14:42

回答

0

JSONP有一些限制,不是唯一的選擇。既然你控制了兩個域,你有沒有考慮過使用CORS?如果沒有,檢查出來:http://www.html5rocks.com/en/tutorials/cors/

你可以閱讀有關JSON-P與CORS這裏:http://json-p.org/

+0

我很喜歡使用CORS--但在IE7中缺乏支持,現在不幸成爲一個難題。 – Brian 2012-07-25 11:51:55

+1

如果是這種情況,那麼爲什麼不用你的json響應回傳響應代碼呢?如果你沒有得到任何迴應,那麼可以肯定的是,有一個服務器端問題,你的代碼是500.如果這還不夠,那麼代理對你來說可能會更好。希望IE7的使用減少,這對你來說不會是一個問題。 – 2012-07-25 14:28:38