我已经解决了这个特殊的问题好几天了,但无济于事。由于这是自由职业者,我的脖子很危险,我需要你的帮助。
首先,我正在使用 phonegap 和 jQuery 1.9.1 创建一个应用程序。该应用程序上线并获取 csv 格式的行程并将其保存在应用程序中。jQuery get() 函数用于此目的。
这就是它变得奇怪的地方。get 函数在 phonegap 的 DeviceReady 事件上触发时可以正常工作,如下所示:
onDeviceReady: function() {
$( document ).bind( "mobileinit", function() {
$.mobile.allowCrossDomainPages = true;
});
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
}, "text")
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
});
});
},
如您所见,允许跨域页面,因此一切运行顺利,我收到“成功”警报。
但是,如果我希望在某个事件上调用它,比如当用户单击一个按钮时,它将不起作用。看看下面这个:
onDeviceReady: function() {
$( document ).bind( "mobileinit", function() {
$.mobile.allowCrossDomainPages = true;
});
$("#itineraryAddButton").bind("click", function(event) {
alert("Event fired");
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
}, "text")
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
});
});
},
“事件触发”警报触发,然后失败函数触发并告诉我发生了 ajax 错误,但是errorThrown
字符串为空,没有给我任何线索。
为了使它更难修复,这只发生在物理 android 设备上,它在浏览器和虚拟 android 设备上完美运行,几乎无法调试。
如果您想了解有关软件版本的更多信息,请告诉我,以及您想帮助我解决此问题的任何其他信息。
大卫
编辑:
https://dl.dropboxusercontent.com/u/53792213/itineraryapp.apk 这是一个下载链接到一个未签名的 apk 来试用。当应用程序打开时点击“添加行程”,然后会出现一个框,您输入的内容无关紧要,点击“Go get it”触发get()函数并观看警报。
'Hello' 如果事件被触发 'Success' 如果得到工作 'An ajax error occurred' 如果没有