Dev*_*Dev 7 javascript ruby safari ruby-on-rails ruby-on-rails-4
我使用的是HTML5的地理位置为我的Rails应用程序,但是当我点击try it按钮,里面出现以下错误safari browser console下show web inspector console:
getLocation — localhost:83[blocked] Access to geolocation was blocked over insecure connection to http://localhost:3000.
Run Code Online (Sandbox Code Playgroud)
这是代码:
<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>
Run Code Online (Sandbox Code Playgroud)
max*_*max 15
Safari(与Chrome和Firefox不同)不允许通过HTTP协议访问地理位置 - 仅限HTTPS.即使是localhost.非常感谢Apple.
解决方案是在开发中使用其他浏览器或通过HTTPS提供Rails.您可以通过生成自签名证书并设置Rails开发服务器(Webrick或Puma)来通过HTTPS提供服务来实现.
Rails 5默认为Puma,而早期版本使用Webrick.
确切的方法取决于您的操作系统和正在使用的服务器.
| 归档时间: |
|
| 查看次数: |
3433 次 |
| 最近记录: |