2016-06-23 115 views
0

由於Chrome 50最近需要使用https進行html5地理定位,因此我們建議我們的客戶之一將其網站遷移到https。他們目前同時擁有http和https活動。我們目前仍然可以在http網站上獲取位置,但它不能在https網站上運行。在代碼中,服務器上還是設備上需要在https站點上獲取GPS座標時,會發生什麼不同?HTML5地理位置在https網站上失敗

客戶在標準「Internet」瀏覽器上使用Android三星Galaxy S6。

我使用的代碼非常簡單。什麼都不喜歡。

function success(position) 
     { 
      var latitude = position.coords.latitude; 
      var longitude = position.coords.longitude; 

      output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>'; 
} 

function error(error) 
     { 
      output.innerHTML = "Unable to retrieve your location" + error.code + " - " + error.message 
     }; 

navigator.geolocation.getCurrentPosition(success, error); 
+1

檢查得到經緯度數據一個https地址。如果導入的URL不是https,該頁面將被視爲僅部分受信任,並且可能會導致您遇到的問題。在Firefox中,證書的url欄上的鎖定將具有灰色標記。 Chrome沒有顯示(我的版本) – user192632

+0

就是這樣,我在頁面前面的外部http javascript文件中調用了$ .getScript。我下載了腳本並將其包含在我的腳本目錄中,並解決了問題。如果您將其複製到答案部分,我會很樂意接受您的答案。感謝您的答覆。 –

回答

1

如果您使用的是HTTPS,各個環節或外部腳本下載的頁面必須使用https或頁面會被認爲是「部分信任」。在較新版本的Firefox中,如果出現這種情況,您將在地址欄中看到一個灰色的符號以及正常的鎖定符號。

3

你不能在所有的庫如在頁面加載過程中導入任何JavaScript庫是用從https撥打電話到HTTP,但您可以從https://freegeoip.net/json/

+0

http://ip-api.com/json/與此類似。 – StephanieQ