Javascript Rails 5:由于与的连接不安全,对地理位置的访问被阻止http://localhost:3000
我正在为我的rails应用程序使用html5地理定位,但当我单击Javascript Rails 5:由于与的连接不安全,对地理位置的访问被阻止http://localhost:3000,javascript,ruby-on-rails,ruby,ruby-on-rails-4,safari,Javascript,Ruby On Rails,Ruby,Ruby On Rails 4,Safari,我正在为我的rails应用程序使用html5地理定位,但当我单击试用按钮时,以下错误出现在显示web检查器控制台下的safari浏览器控制台内: getLocation — localhost:83[blocked] Access to geolocation was blocked over insecure connection to http://localhost:3000. 代码如下: <button onclick="getLocation()">Try It</
试用
按钮时,以下错误出现在显示web检查器控制台下的safari浏览器控制台内
:
getLocation — localhost:83[blocked] Access to geolocation was blocked over insecure connection to http://localhost:3000.
代码如下:
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
试试看
var x=document.getElementById(“演示”);
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition);
}否则{
x、 innerHTML=“此浏览器不支持地理位置。”;
}
}
功能显示位置(位置){
x、 innerHTML=“纬度:”+position.coords.Latitude+
“
经度:”+position.coords.Longitude;
}
Safari(与Chrome和Firefox不同)不允许通过HTTP协议访问地理位置-仅限HTTPS。甚至对于localhost。非常感谢苹果
解决方案是在开发中使用另一个浏览器,或者通过HTTPS为Rails提供服务。您可以通过生成自签名证书并将Rails开发服务器(Webrick或Puma)设置为通过HTTPS提供服务来实现这一点
Rails 5默认为Puma,而早期版本使用Webrick
具体方法因操作系统和使用的服务器而异
谢谢您的帮助@max。。。我最终安装了firefox,它工作得很好!!!OMG noob苹果开发者。localhost永远不应该需要https,因为它是localhost。您也可以使用NGrok这样的隧道,它提供了SSLApple开发人员的体验。特别是在网上。