使用jQuery Mobile时出现跨浏览器问题


Cross-browser issue while using jQuery Mobile

我使用的是PhoneGap,其中允许我们使用jQuery/JavaScript进行操作。我向我在CakePHP中编写的一个Web服务发出Ajax请求,发送3个内容:id(来自地址栏)和纬度和经度(来自HTML5地理位置)。

现在的问题是,相同的Web服务在Firefox中提供正确的数据,而在其他浏览器中,对于相同的latlong,它会说"没有数据"。

我在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会将相关记录返回到值