2017-10-17 62 views
1

我發展我和使用我rails 5應用的html5 geolocation的Rails:localhost更改:3000到https://

function getLocation() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(setGeoCookie); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function setGeoCookie(position) { 
    var cookie_val = position.coords.latitude + "|" + position.coords.longitude; 
    document.cookie = "lat_lng=" + escape(cookie_val); 
} 

它的正常工作與firefox和除safari所有的瀏覽器。與safariallow pop up不出現。

我做了一些研究,發現..... Safari(不像Chrome和Firefox)不允許通過HTTP協議訪問地理位置 - 只有HTTPS。即使是本地主機。

解決方案是在開發中使用其他瀏覽器或通過HTTPS提供Rails服務。

有人可以給我指示如何在開發中通過HTTPS提供Rails嗎?

+0

在我看來,簡單地使用其他瀏覽器是最簡單的選擇。 –

+0

是的,我同意@Sergio Tulentsev!唯一的問題是,當我部署它時它會與safari一起工作嗎?因爲我現在無法測試它! – Theopap

+0

這取決於您的操作系統和設置。特別是你使用的是什麼Rails服務器。基本上你必須創建一個自簽名證書(PEM)並將其信任在操作系統中。 https://gist.github.com/tadast/9932075 – max

回答

2

通過https服務Rails的最簡單方法是使用ngrok。它只是提供了一個到localhost的安全隧道。極易在application.rb

config.force_ssl = true 

或者作爲Nwocha建議你可以如用ngrok使用

0

你可以讓你的Rails應用程序上運行的HTTPS通過添加以下行。

相關問題