jQuery Geolocation:无法读取属性' coords'未定义的

时间:2017-09-08 21:53:45

标签: javascript jquery geolocation

我现在已经浏览了几个小时才找到解决方案。 我对JavaScript知之甚少,实际上我正在学习它。

我遇到了获取用户GPS位置的问题。我想要 : - 获取用户的位置(jQuery)。 - 通过Ajax>将其传输到服务器端PHP。

这是我的JS代码:

$(document).ready(function () {
    initCoords();
});

function initCoords() {
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(updateLocation, errorHandler, {enableHighAccuracy: false, maximumAge: 60000, timeout: 27000});
    } else
    {
        alert('Wrong browser.');
    }
}

function updateLocation(position)
{
    var longitude=position.coords.longitude;
    var latitude=position.coords.latitude;
    console.log(longitude);
    $.ajax({
        url: "../../ajax/account/handlegeolocation",
        type: "post",
        dataType: "json",
        data: {"longitude": longitude, "latitude": latitude},
        success: function (response) {
            console.log(response.message);
        },
        error: function (xmlhttprequest, textstatus, message) {
            console.log(message);
        }
    }).then(function () {
        setTimeout(updateLocation, 30);
    });
}

function errorHandler(error)
{
    console.log('Geolocation error : code ' + error.code + ' - ' + error.message);
}

我感到惊讶的是我在加载页面时看到的内容。 返回位置,但JS表示返回位置的对象未定义。

Capture Results Jquery

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这是因为您没有从

传递位置对象
../

从超时调用函数setTimeout(updateLocation, 30); 将解决您的问题。

或者这是您的代码,有一些编辑,没有任何错误。

initCoords