Я получаю геолокацию. Проблема у меня в том, что геолокация занимает несколько секунд, чтобы ответить. К тому времени мой аякс уже был вызван в документе, и длинный/лат никогда не был отправлен. Как я могу удостовериться, что ajax не вызывается до тех пор, пока не будет завершена обработка?Функции загрузки Javascript asychronosuly
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
//get it another way
//else
var Longitude = '0';
var Latitude = '0';
}
function showPosition(position) {
var Longitude = position.coords.longitude;
var Latitude = position.coords.latitude;
}
$.ajax({
url: 'activities.php?action=log-campaign-visit',
type: 'post',
data: {
DeviceID: session,
CampaignId: id,
User: userid,
IP: IP,
Agent1: agent1,
Referer1: referer1,
CouponId: couponId,
CampaignMedium: Cmedium,
CampaignSource: source1,
URL: fullUrl,
RedemptionCode: RedemptionCode,
Userlanguage: userLang,
ScreenWidth: screenWidth,
ScreenHeight: screenHeight,
ScreenOrientation: orientation,
Longitude: Longitude,
Latitude: Latitude
},
success: function (data) {
$('#RedemptionCode').html(data);
if (data == 'Success') {}
},
done: function() {
alert("done");
},
fail: function() {
alert("error");
},
always: function() {
alert("complete");
},
});
переместите ваш вызов ajax в ваш обратный вызов геолокации – dc5