我正在嘗試爲Android連接到一個網站的數據庫創建一個應用程序。 我正在使用phonegap,並且我想使用JSON將數據從數據庫中恢復到應用程序。無法在Android上使用Phonegap獲取json數據
我在服務器端創建了一個php腳本來執行一些sql請求,並形成一個有效的json文件。
我創建了腳本來獲取數據,它在我的瀏覽器(在我的桌面上)運行時正在工作,但現在我試圖在移動設備上發送應用程序,它不再工作,這就像json請求沒有做任何事情。
我在config.xml中的白名單中添加了網站。
這裏是我使用的代碼:
<script>
$(document).bind("mobileinit", function(){
$.mobile.allowCrossDomainPages = true;
});
</script>
<script type="text/javascript">
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady()
{
var db = window.openDatabase("GalagoPosts", "1.0", "GalagoPosts", 200000);
db.transaction(populateDB, errorCB, successCB);
}
// Populate the database
//
function populateDB(tx)
{
//tx.executeSql('DROP TABLE IF EXISTS GalagoTuto');
tx.executeSql('CREATE TABLE IF NOT EXISTS GalagoTuto (id unique, title TEXT NOT NULL, artist TEXT NOT NULL, difficulty INTEGER NOT NULL, date TEXT NOT NULL, link TEXT NOT NULL)');
// Ajax request
//
$url = "http://www.mydomain.com/JSON/json_get_data.php";
$.getJSON($url, function(data)
{
alert("Got Data");
$.each(data, function(index, element)
{
$("#latest").append(element.Title+"<br/>");
});
displayPages();
});
}
// Transaction error callback
//
function errorCB(tx, err)
{
alert("Error processing SQL: "+err.code);
}
// Transaction success callback
//
function successCB()
{
//alert("Succes");
}
// Display main page after loading data
//
function displayPages()
{
$("body .splashScreen").delay(10).fadeOut(10, function() {
$("body .mainApp").fadeIn(10);
$("#nav-bar .current_page_item a").mouseenter();
});
}
</script>
這裏是我的PHP代碼:
//echo $_GET['jsoncallback'].'('.json_encode($json_array).');';
echo json_encode($json_array);
我有和無回調試過,但我從來沒有得到警報「得到的數據」。 我使用Phonegap 3.4.0,jQuery 1.11.1和jQuery mobile 1.4.2。
我花了大量的時間試圖找出它,在谷歌搜索,但最終沒有在我的手機上工作。
有沒有人有一個想法如何做到這一點? 謝謝。
我試過了,但沒有奏效。只是好奇,爲什麼警報(數據)工作,如果警報(「有數據」)不是? – whiteShadow
alert()將顯示從服務器接收的json內容。如果空白處於警報狀態,所以服務器沒有響應,如果警報沒有出現,那麼代碼中會出現一些錯誤。你可以在consoel(F12)chrome或firefox中粘貼相同的代碼 –