2012-06-28 51 views
0

我有一個Rails 3.2應用程序,我試圖調試一個奇怪的ssl問題。ssl_requirement僅在生產上失敗,僅在兩頁上

我在整個我的應用程序頁面緩存,並保持動態內容我正在做Ajax請求更新某些方面。

所有被高速緩存的頁面都應該只被http請求。當一個ssl請求被創建時,除了其中的兩個都被重定向到http。

問題是,這兩個頁面ArtistsBlog無法重定向回http,並且刷新內容的ajax請求被取消。據我所知,它被取消是因爲它將普通的http看作是一個不同的站點,並且你不能在ssl下向另一個站點發出ajax請求。

設置本地簽名證書沒有幫助。在開發過程中,這兩個頁面的行爲恰當。我還使用AWS ELB,其中ssl終止於負載均衡器並轉到端口80,而且似乎也正常工作。

我可以強制這兩個頁面重定向到http每次,但我更願意深究這一點。

我正在使用ssl_requirement來執行應用級別重定向。

我正在尋找如何發生這種情況的想法。我已經梳理了我的代碼庫,並且在應用程序級別找不到任何可以實現此目的的任何內容。我不認爲我的apache虛擬主機是完美的,但沒有任何關於這兩個頁面的東西。任何人都知道這可能發生在堆棧中的哪個位置?

編輯:

終於明白,因爲頁面完全緩存,請求只打了Apache和從來沒有哪裏會被重定向的應用程序。這讓我質疑爲什麼Ajax請求被取消。 Ajax請求位於同一個域但未加密。這不應該僅僅是作爲'不安全內容'的警告嗎?我正在使用jQuery getScript來加載動態內容。

回答

0

那麼,這將在愚蠢的錯誤的歷史上下降,但我想我會留下來幫助其他人谷歌搜索。

簡單的答案是我的ajax調用不被允許通過ssl連接。如果您的ssl_requirement具有ssl_allowed方法,請確保調用加載動態內容的ajax方法通過ssl。否則,請求將被取消,或者它將獲得302重定向。

相關問題