地理位置脚本不起作用

Geolocation script not working

我正在向另一台服务器上 运行 的应用发出请求。我知道我的浏览器支持地理定位,因为我在别处试过。这是我目前拥有的:

<script>
    function getLocation(){
        if(navigator.geolocation){
            navigator.geolocation.getCurrentPosition(showPosition)
        }else{
            console.log("Geolocation is not supported");
        }
    }
    function showPosition(position){
        return position.coords.latitude+" "+position.coords.longitude;
    }

    (function () {
        var latlong = getLocation();
        console.log("Latlong " + latlong);
        var http = new XMLHttpRequest();
        http.open("POST", "http://api.example.com/", true);
        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        var params = "location=" + latlong;
        http.send(params);
        http.onload = function() {
            alert(http.responseText);
        }
    })();
</script>

请求有效,但位置参数设置为 undefined。为什么没有定义?

函数getCurrentPosition接受三个这样的参数。
navigator.geolocation.getCurrentPosition(success, error, options);

简单地说你的输出函数需要在success.

工作fiddle

将 Ajax 请求移动到 showPosition 回调中。在填充之前调用params的那一刻。