javascript - phonegap 上的 Ajax 调用不发送请求

标签 javascript jquery cordova

我正在为这个而烦恼。

我有一个 jquery ajax 调用到我的服务器上,它在我的浏览器上工作,当我将它连接到我的本地代理以进行 http 嗅探时,它在我的设备上工作,但当它在 wifi 上或在我的代理上时挂起细胞网络。

我已经设置了 phonegap config.xml 以允许我的域。该请求是在服务器上获取以及 ajax 调用。你会注意到它是 jsonP。

调用是直截了当的 jquery,无论如何我都会发布代码。 api 对象是我为保存应用程序功能而创建的自定义对象。

var dfd = $.ajax({
    url: myurl, // I've confirmed the url, but prefer to keep it private
    data: {
        ApplicationID: api.applicationID,
        DeviceID: api.device.uuid(),
        OSVersion: api.device.version(),
        DeviceVersion: api.device.platform(),
        Lat: lat,
        Lng: lng,
        Bearing: bearing
    },
    dataType: "jsonp",
    timeout: 30000
})
.fail(function (event, jqXHR, ajaxSettings, thrownError) {
    console.error(jqXHR);
});

我试过这个答案,这是我能找到的最接近我的问题的答案,但它似乎不起作用。 Phonegap jQuery ajax request does not work

有什么我想念的吗?我做错了什么?

编辑: 我忘了说,我在 ajax 调用上设置的超时没有任何作用,它似乎只是忽略了它。

最佳答案

既然拉的是json串,为什么不用

$.getJSON("http://www.example.com?jsoncallback=?",
    function(data){ ... }

注意 json 回调。这里发生的是 jquery 将一个额外的参数解析到代码以验证结果是否来自实际请求。这发生在跨域请求上。

为了让你的'json-builder'兼容,简单的把jsoncallback放在请求的前面:

$return =  $_GET["jsoncallback"].'({"title" : "test", "author" : "someone"});

关于javascript - phonegap 上的 Ajax 调用不发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110233/

相关文章:

javascript - WebRTC(简单对等)+ 没有额外信号的 STUN?

JavaScript 检查对象是否具有继承属性

php - 使用 jQuery 从 PHP 获取变量值

jquery - MVC 4 对 View 模型中的对象进行不显眼的验证

javascript - 如何修改这个 jQuery 脚本,该脚本仅在用户向下滚动到它时才进行计数?

javascript - 预缓存模板是否值得?

在 vaadin 项目中找不到 JavaScript 文件

javascript - OPTIONS 为 CORS 返回 200 后,Axios 不处理来自 POST 的 500

javascript - 使用 Javascript 为 phonegap 应用程序推送通知?

android - 无法构建 Android Cordova 项目 (Ionic 5)