2015-12-09 21 views
1

我面臨的混合內容問題,當我瀏覽我的網站在HTTPS。 我從jQuery調用API,並且我沒有提到協議,所以假設瀏覽器應該選擇與站點瀏覽相同的協議(http或https)。 我的jQuery代碼看起來像下面:混合內容問題 - 不安全的XMLHttpRequest端點

$.get("/api/Product/GetMore", { pageIndex: currentPage }) 
    .done(function(result) { 
    ..... 

它工作正常(能夠得到API調用的結果),在瀏覽HTTP網站的時候,做必要的行動,以獲取結果。 但是,當我瀏覽該網站並嘗試在https中獲得結果時,我在瀏覽器控制檯中發現錯誤。即使我使用https協議對完整的API url進行硬編碼,也會發生同樣的情況。 混合內容:在的 'https:///產品' 的頁面加載通過HTTPS,但要求一個不安全的XMLHttpRequest端點的 'http:/// API /產品/ getmore的PageIndex = 1'。此請求已被阻止;內容必須通過HTTPS提供。

XHR加載失敗:GET 「的https:/// API /產品/ GetMore的PageIndex = 1」。

請讓我知道如果您有任何解決方案。

感謝, 沙拉斯

+0

你的API網址可能重定向到一個HTTP位置,或者通過API發送的數據包含不安全的資源URL(S),這是我的2美分。 –

+0

嗨Eduardo,我驗證了它沒有重定向的API URL。如果我瀏覽API URL(例如:https://開頭的mysite/API /產品/ GetMore的PageIndex = 1?),我可以得到結果(能夠得到的結果HTTPS或HTTPS協議),結果包含有效的網址。 IIS中有沒有什麼東西在考慮使用默認http協議的相對URL? – Sharath

回答

0

爲了工作需要,所以它知道它的作用是調用指定的index.php。因爲這與cUrl調用類似,它需要完整路徑。爲了讓調用來決定它所在的協議,在開始時需要雙斜槓。所以,試試這個:

$.get("//api/Product/GetMore/index.php", { pageIndex: currentPage }) 

OR

$.get("//api/Product/GetMore/", { pageIndex: currentPage }) 

修正了過去的我的問題。