我使用的是PhoneGap,其中允许我们使用jQuery/JavaScript进行操作。我向我在CakePHP中编写的一个Web服务发出Ajax请求,发送3个内容:id(来自地址栏)和纬度和经度(来自HTML5地理位置)。
现在的问题是,相同的Web服务在Firefox中提供正确的数据,而在其他浏览器中,对于相同的lat
和long
,它会说"没有数据"。
我在Ajax请求中使用了跨域,现在使用的是POST方法。
这是请求代码
var request= $.ajax({
type: "post",
url: 'url',
data:{ id: localStorage.getItem("id"), latitude: localStorage.latitude,longitude: localStorage.longitude},
crossDomain: true,
dataType: "xml",
cache: false
});
request.done(function (data){
//show data
});
request.fail(function (data){
alert('error');
});
尝试此测试
if(navigator.geolocation) {
// API is working
} else {
// no support
}
它将告诉您正在使用的浏览器是否接受地理定位API。
好的,我得到了错误,并通过谷歌搜索解决了它。。。。。。问题是javascript在其他浏览器中的split函数,特别是在chrome中,integer被转换为alphabet,我不知道为什么,所以我用这个函数来获得所需的值。。。。。。。。
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
var first = getUrlVars()["id"];
现在,如果我提醒(第一);它会给我一个整数值,webservice会将相关记录返回到值