地理位置脚本不起作用
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的那一刻。
我正在向另一台服务器上 运行 的应用发出请求。我知道我的浏览器支持地理定位,因为我在别处试过。这是我目前拥有的:
<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的那一刻。