我一直在研究一個從Dropbox收集csv文件然後顯示它的應用程序。由於我使用phonegap,我一直在使用瀏覽器進行開發和測試,Firefox更精確。在一天結束的時候,我用android 3.2.1將它加載到我的HTC平板電腦上,並且它不工作。以下是目前使用的代碼:jQuery獲取功能在真實移動設備上無法正常工作
$.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模擬器上工作得非常好。但不在真實的物理設備上。
我根本無法解決它。沒有給出錯誤,並且從不調用失敗函數。我已添加的兩個警報都不會觸發。
這是非常令人沮喪的,因爲我無法訪問遠程調試,而且我無法在桌面上進行調試,因爲它在桌面上工作正常。
我使用jQuery 2.0.2使用jQuery移動1.3.1
我會很感激哪怕是一丁點線索是怎麼回事一起。
編輯:爲了瞭解錯誤,現在,它是INFACT扔我修改了我的發言到此錯誤:
$.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);
});
});
},
};
在上述情況下,您好警報觸發,但不是成功警報,而是我得到一個空白的ajax錯誤。有任何想法嗎?
FYI .error()不贊成使用。失敗() –
另外,由於您使用https請求資產,如果您的頁面不是使用https(Dropbox域)從同一臺服務器提供的,那麼錯誤的潛在來源是您違反了您的同一個源策略瀏覽器。 –
我該如何解決這個問題?它實際上不是瀏覽器,而是android上的web視圖。我希望有辦法解決這個問題。或者將文件傳輸到應用程序的其他方式 – Constan7ine