我正在向我在其他服务器上运行的应用发出请求。我知道我的浏览器支持地理位置,因为我已在别处尝试过。这是我现在拥有的:
<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
。为什么没有定义?
答案 0 :(得分:1)
函数getCurrentPosition
接受三个这样的参数。
navigator.geolocation.getCurrentPosition(success, error, options);
只需将输出函数放在success
。
工作fiddle
答案 1 :(得分:0)
将Ajax请求移动到showPosition
回调中。目前你在params被填满之前给它打电话。