換種思路解決http與https之間的頁面調用問題

業務場景:

   主頁面爲http協議的普通頁面。

   子頁面爲https協議的頁面。

   兩張頁面處於同一個域名,只是協議不同。從瀏覽器角度而言應該屬於跨域問題。

業務要求:

   主頁面在加載子頁面裏需要傳遞參數給子頁面。

   子頁面在處理完成後需要回調父頁面的方法。

業務示例:

   主頁面有按鈕,點擊後彈出登錄窗口,該登錄窗口爲iframe方式嵌入一個單獨的JSP頁面。

 

問題描述:

   在未採用https的時候,父頁面直接調用子頁面的方法獲取父頁面的參數。在子頁面處理完成後也是直接調用父頁面的方法完成後續處理任務。

  在改用https後,父頁面無法調用子頁面的方法,子頁面也無法調用父頁面的方法,具體的原因就是出現無權限訪問。

問題分析:

   針對跨域的問題,採用通常的document.domain及jsonp均無法解決子頁面調用父頁面的問題。

解決方案:

   換種思路,既然子頁面是因爲協議與父頁面不同導致無法調用,那我們只要想法變成相同的即可。

 具體步驟如下:

  對於父頁面傳遞給子頁面參數的問題,可以直接在URL後面跟上需要傳遞的參數即可(對於大數據量不可使用)

  對於子頁面調用父頁面的問題,可以在子頁面處理完成後,使用window.location.href的方式先跳轉到一個http協議的中間頁面,再由該頁面去調用父頁面的方法即可。如果需要傳遞參數,一樣直接使用URL追加相應的參數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章