2

我已经解决了这个特殊的问题好几天了,但无济于事。由于这是自由职业者,我的脖子很危险,我需要你的帮助。

首先,我正在使用 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' 如果没有

4

0 回答 0