位置情報を取得しています。私が抱えている問題は、地理位置情報の応答に数秒かかることです。その時までに、私の ajax はすでにドキュメントの準備ができて呼び出されており、long/lat は投稿されません。ジオロケーションが完了するまで ajax が呼び出されないようにするにはどうすればよいですか?
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");
},
});