使用传单和本地主机拒绝位置访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用传单和本地主机拒绝位置访问相关的知识,希望对你有一定的参考价值。

我在传单中遇到了locate函数的问题。

我正在使用express来通过本地主机提供我的应用程序。当我从我自己的计算机访问它时,它工作,但当我在网络上使用不同的计算机时,它拒绝访问位置。

在网络和权限方面,我不是很了解。任何帮助,将不胜感激!

App.js用于表达

var express     = require("express"),
    app         = express(),
    router      = express.Router(),
    port        = process.env.PORT || 3000,
    bodyParser  = require("body-parser");

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(__dirname + "/public"));
app.use(express.static(__dirname + "/views"));
app.use(express.static(__dirname + "/plugins"));

app.get("/", function(req, res){
    res.sendFile("index.html");
});

app.listen(port, function(){
    console.log("app is running on port " + port);
});

Index.js:

    mymap.locate({setView: true})
      .on("locationfound", function(e){
        if(currentLoc){
          currentLoc.remove();
          currentLocErr.remove();
        }
        currentLoc = L.marker([e.latitude, e.longitude]).bindPopup('Your location');
        currentLocErr = L.circle([e.latitude, e.longitude], e.accuracy/2, {
            weight: 1,
            color: 'blue',
            fillColor: '#cacaca',
            fillOpacity: 0.5
          });
        mymap.addLayer(currentLoc);
        mymap.addLayer(currentLocErr); 
      })
      .on("locationerror", function(e){
        alert("Location access denied.");
    });
答案

来自docs

locate(<Locate options> options?):尝试使用Geolocation API找到用户...请注意,如果您的页面不使用HTTPS,则此方法将在现代浏览器中失败

那么在你的情况下会发生什么,你的localhost是一个可靠的来源,你的浏览器将允许你使用浏览器本身提供的Geolocation API,没有问题。

但是,如果您尝试从网络中的另一台计算机访问它,则应将代码发布为HTTPS,以使其正常工作,否则会引发您遇到的错误。

你可以阅读更多关于Geolocation API here的信息。

以上是关于使用传单和本地主机拒绝位置访问的主要内容,如果未能解决你的问题,请参考以下文章

本地主机服务器拒绝连接

访问路径被拒绝

WMI 的“访问被拒绝”异常

访问路径被拒绝

无法访问此站点:localhost 拒绝连接

MAC,MAMP,127.0.0.1 连接被拒绝,本地主机正常