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

时间:2013-07-18 21:04:11

标签: php javascript jquery ajax cordova

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

现在问题是同一个webservice在Firefox中提供了正确的数据,而在其他浏览器中,同一个latlong表示“没有数据”。

我在Ajax请求中使用了crossdomain,我正在使用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');
});

2 个答案:

答案 0 :(得分:0)

试试这个测试

if(navigator.geolocation) {
  // API is working
} else {
  // no support
}

它会告诉您是否使用了接受地理定位API的浏览器。

答案 1 :(得分:0)

好吧我得到了错误并通过谷歌搜索解决了......问题是javascript在其他浏览器中的拆分功能特别是在chrome中,整数被转换为字母表我不知道为什么所以我用这个函数得到了期望值........

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