地理位置脚本不起作用

时间:2015-01-22 20:12:35

标签: javascript geolocation

我正在向我在其他服务器上运行的应用发出请求。我知道我的浏览器支持地理位置,因为我已在别处尝试过。这是我现在拥有的:

<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。为什么没有定义?

2 个答案:

答案 0 :(得分:1)

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

只需将输出函数放在success

工作fiddle

答案 1 :(得分:0)

将Ajax请求移动到showPosition回调中。目前你在params被填满之前给它打电话。