我正在尝试创建一个连接到网站数据库的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。
我花了很多时间试图解决这个问题,在google上搜索,但最终我的手机上没有任何效果。
有没有人知道如何做到这一点? 谢谢。
答案 0 :(得分:0)
试试这个
alert(data); //alert("Got Data");
如果它使用json数据提供警报
检查Title
的警报是否有效。
答案 1 :(得分:0)
我终于明白了。我无法相信它是多么愚蠢。
我使用此代码包含jquery:
<script type="text/javascript" src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
但是如果你不在config.xml中添加它,它就无法正常工作:
<access origin="http://code.jquery.com" subdomains="true" />
我没想到有必要在白名单上允许jquery.com。
感谢您的帮助。