2015-05-29 32 views
6

混合內容:在‘https://www.example.com/dashboard’裝載了HTTPS ,但要求一個不安全的XMLHttpRequest端點 ‘http://api.example.com/inventory/10/’此請求已被封鎖網頁; 內容必須送達。通過HTTPS。應用程序實施SSL後,GET請求會引發錯誤:混合內容:此請求已被阻止;內容必須通過HTTPS提供」

我們有與瓶在後端運行此角的Web應用程序。 一切工作正常,直到我們實現了SSL。之後,我們繼續到處得到這個奇怪的錯誤。

現在,我的dashboard.js中的$ http.get請求在下面的代碼中確實調用了「https://api.example.com/inventory/10」,但是錯誤聲稱我們正在嘗試請求「http」。

$http.get($rootScope.baseUrl+'/inventory/' + item.id) 

其中rootScope.baseUrl是「https://api.example.com」。

這真的很奇怪,因爲一些GET請求會從我們的Web應用程序傳遞到我們的後端,但有些請求會拋出這個奇怪的錯誤。

這裏的標題在chrome的控制檯的Network選項卡中出現錯誤。

請求URL:https://api.example.com/inventory/10請求頭 臨時標題顯示接受:應用/ JSON,文本/純,/ 來源:https://www.example.com 的Referer:https://www.example.com/dashboard

+0

另請參見http://stackoverflow.com/questions/29302160/https-with-http-in-angular-not-working –

回答

2

這是一個奇怪的情況下下降到從固定一切的URL的末尾去除正斜槓。不知何故,無論何時我們在Angular中使用$ http進行GET請求,如baseurl + inventory.id +「/」,它將發起http請求,但是一旦刪除該斜槓,就會正確地發出https請求。

仍然如此困惑

+0

我想知道是否有某種URL重寫正在進行,並將URL解析爲絕對帶有http://的網址... –

2

我認爲問題的根源在服務器重定向。我能夠解決與Django(運行在AWS平衡器後面)的SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')設置相同的問題。這裏是documentation

相關問題