我們後面的負載平衡器的IIS服務器上託管我們的網站。 LB執行SSL卸載,其後面的所有內容都會與HTTP進行通信。AJAX調用與相對URL訪問http一個網站通過HTTPS提供
的問題是,在使用相對URL而此時回到同一Web服務器所服務的頁面AJAX請求正在嘗試通過HTTP進行連接,而不是HTTPS。這違反了我們的CSP政策,並且由於混合內容通常無法呈現。如果這些URL在客戶端的瀏覽器上解析,爲什麼會發生這種情況?
的URL目前的樣子:
url: '/controller/someaction'
其中一個頁面上,如https://host/controller/action試圖調用http://host/controller/someaction
如果我們使用協議的相對路徑:
url: '//controller/someaction'
我們失去主機完全和它試圖調用https://controller/someaction
設置當前導致無限重定向循環的upgrade-insecure-請求存在問題。這是對這個問題的長期解決方案,但補充說響應頭引入了比短期內解決的問題更多的問題。可能有一個涉及ajaxSetup/beforeSend的修改URL,但感覺真的很髒。我們可以遍歷整個代碼庫,並更改網址的「https://」 + windows.location.host +「/控制器/ someaction」,但那種感覺髒和耗時。
一個搜索顯示的行爲可能會有所不同,如果該URL(電流或要求)以「/」結束,但實驗表明,我們看到了所有組合相同的行爲。
任何想法爲什麼會發生這種情況?我們寧可不改變SSL卸載行爲,但如果它是唯一的選擇,則可以。
看看其他一些答案,他們建議由於某種原因添加斜線,可能至少值得一試。所以改變你的網址爲''/ controller/someaction /'' – George
我提到過我沒有成功嘗試過。不過謝謝。 – JRoughan
對不起,我沒有完整閱讀這個問題 – George