1

ドロップボックスからcsvファイルを収集して表示するアプリに取り組んでいます。私はphonegapを使用しているので、ブラウザー、より正確にはFirefoxで開発およびテストしてきました。一日の終わりに、Android 3.2.1 を搭載した HTC タブレットにロードしましたが、機能しませんでした。現在使用されているコードは次のとおりです。

$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
        alert('Success');
        // Do stuff
    })
    .fail(function() { alert('error'); });

このコードは、Firefox および Android 4.2.2 の Android エミュレーターで問題なく動作します。ただし、実際の物理デバイスではありません。

私は単にそれを解決することはできません。エラーは発生せず、fail 関数は呼び出されません。私が追加した両方のアラートは発生しません。

リモート デバッグにアクセスできないため、非常にイライラします。また、デスクトップでは正常に動作するため、デスクトップでデバッグすることもできません。

jquery 2.0.2 と jquery mobile 1.3.1 を使用しています。

何が起こっているのかについて、わずかな手がかりでもいただければ幸いです。

編集:エラーについて調べるために、実際にエラーがスローされているので、ステートメントを次のように変更しました。

$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
        alert('Success');
        // Do stuff
    })    
.fail(function(jqXHR, textStatus, errorThrown) {
            alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
        });

ただし、これは返されるエラーです。

An AJAX error occured: error
Error:

空白のエラー メッセージ? 私が何か間違ったことをしているか、JavaScript がゆっくりと私を殺したいと思っているかのどちらかです。

編集2:

いくつかの実験を行った後、さらに奇妙な動作を発見しました。get() 関数を deviceReady 関数に直接追加すると、アプリが読み込まれて準備が整ったときに起動されるため、完全に機能します。

しかし(そしてこれが起こっていることです)デバイスの準備完了関数でクリックjqueryイベントをバインドし、その中でget関数を呼び出すと、機能しません。これを見てください:

var App = {

// Application Constructor
initialize: function() {
    this.bindEvents();
},
bindEvents: function() {
    document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
    //This does work
    $.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
        alert('Success');
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
         alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
     });
    $("#Button").bind("click", function(event) {
        alert("Hello");
        //This does not work       
        $.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
            alert('Success');
        })
        .fail(function(jqXHR, textStatus, errorThrown) {
            alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
        });
    });
},

};

上記の状況では、hello アラートは発生しますが、success アラートは発生せず、代わりに空の ajax エラーが発生します。何か案は?

4

1 に答える 1