我正在为这个而烦恼。
我有一个 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/