Javascript HTML5地理定位&x2B;Ajax请求:在Lat/Long之前触发Ajax
我有一个表单,我正试图填充与用户最近的地址(使用谷歌的反向地理编码API)。这意味着我需要向Ajax脚本发送纬度和经度,但我的问题是,在进行Ajax调用之前,lat/long没有解析。下面是我用于横向/纵向计算的代码。你知道如何确保Ajax调用在收到地理位置信息后发生(如果没有,则取消)而不使用Javascript HTML5地理定位&x2B;Ajax请求:在Lat/Long之前触发Ajax,javascript,jquery,ajax,html,geolocation,Javascript,Jquery,Ajax,Html,Geolocation,我有一个表单,我正试图填充与用户最近的地址(使用谷歌的反向地理编码API)。这意味着我需要向Ajax脚本发送纬度和经度,但我的问题是,在进行Ajax调用之前,lat/long没有解析。下面是我用于横向/纵向计算的代码。你知道如何确保Ajax调用在收到地理位置信息后发生(如果没有,则取消)而不使用sleep调用或其他黑客解决方案吗 <script type="text/javascript"> var lat, long; function savePosition(positio
sleep
调用或其他黑客解决方案吗
<script type="text/javascript">
var lat, long;
function savePosition(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
//alert("Lat = "+lat+"\nLong = "+long);
}
jQuery(document).ready(function() {
function initialize() {
var location = navigator.geolocation.getCurrentPosition(savePosition);
//lat = location.coords.latitude;
//long = location.coords.longitude;
//alert(lat+","+long);
jQuery.ajax({
url: "./address.php",
type: "POST",
data: { lat: lat, long: long }
}).done(function(result) {
alert(result);
});
}
});
</script>
var-lat,long;
功能保存位置(位置){
纬度=位置坐标纬度;
long=position.coords.longitude;
//警报(“Lat=“+Lat+”\nLong=“+long”);
}
jQuery(文档).ready(函数(){
函数初始化(){
var location=navigator.geolocation.getCurrentPosition(保存位置);
//纬度=位置坐标纬度;
//long=location.coords.longitude;
//警报(纬度+“,”+长);
jQuery.ajax({
url:“./address.php”,
类型:“POST”,
数据:{lat:lat,long:long}
}).完成(功能(结果){
警报(结果);
});
}
});
EDIT试图按照评论的建议进行编辑,并做出如下声明:
<script type="text/javascript">
jQuery(document).ready(function() {
var lat, long;
function savePosition(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
alert("Lat = "+lat+"\nLong = "+long);
jQuery.ajax({
url: "./address.php",
type: "POST",
data: { lat: lat, long: long }
}).done(function(result) {
alert(result);
});
}
function initialize() {
var location = navigator.geolocation.getCurrentPosition(savePosition);
//lat = location.coords.latitude;
//long = location.coords.longitude;
alert(lat+","+long);
}
initialize();
});
</script>
jQuery(文档).ready(函数(){
var-lat,long;
功能保存位置(位置){
纬度=位置坐标纬度;
long=position.coords.longitude;
警报(“Lat=“+Lat+”\nLong=“+long”);
jQuery.ajax({
url:“./address.php”,
类型:“POST”,
数据:{lat:lat,long:long}
}).完成(功能(结果){
警报(结果);
});
}
函数初始化(){
var location=navigator.geolocation.getCurrentPosition(保存位置);
//纬度=位置坐标纬度;
//long=location.coords.longitude;
警报(纬度+“,”+长);
}
初始化();
});
但是现在,当我在Chrome上设置断点时,savePosition函数根本没有被调用。知道发生了什么吗?地理定位也是异步的。只需在处理程序函数中进行AJAX调用,
savePosition
。尝试过之后,现在savePosition函数根本没有启动。查看我的编辑,了解我将其更改为的内容。