无法在带有Phonegap的jquery中加载JSON
我正在尝试使用varius事件版本,但无法在init中加载到第一页json 我有3个文件htmlindex+other+js和1个WS-index.html是phonegap标准文件,有4个链接,其他文件如下: 我正在使用PhoneGap2.9.0、jquery-1.11.0和jquery.mobile-1.4.2 html文件是:无法在带有Phonegap的jquery中加载JSON,jquery,json,cordova,Jquery,Json,Cordova,我正在尝试使用varius事件版本,但无法在init中加载到第一页json 我有3个文件htmlindex+other+js和1个WS-index.html是phonegap标准文件,有4个链接,其他文件如下: 我正在使用PhoneGap2.9.0、jquery-1.11.0和jquery.mobile-1.4.2 html文件是: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<link rel="stylesheet" href="css/jquery.mobile-1.4.2.min.css" />
</head>
<body >
<div data-role="page" id="tintos" data-add-back-btn="true" data-cache="false">
<div data-role="content">
<ul id="vino-list" data-role="listview" data-theme="a" data-divider-theme="e" data-filter="true" data-filter-placeholder="Buscar Vinos..." data-inset="true" class="tinto">
</ul>
</div>
</div>
<script src="cordova.js"></script>
<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/jquery.mobile-1.4.2.min.js"></script>
<script src="js/list.js"> </script>
</body>
</html>
和js文件包含ajax JSON:
var serviceURL = "http://www.domain.com/ws/prueba.php";
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
var employees;
$('#tintos').bind('pageinit', function(event) {
getTintoList();
});
$('#tintos').bind('mobileinit', function(event) {
getTintoList();
});
$('#tintos').bind('deviceready', function(event) {
getTintoList();
});
$.getJSON(serviceURL, {
success:function(data){
alert("Working");
data = evalJSON(data);
}, error: function() { alert("Error"); }
});
function getTintoList() {
alert('READY!');
var output = $('#vino-list').text('Loading data...');
var vino=locationVars('TIPO');
$.ajax({
url: serviceURL,
dataType: 'jsonp',
data: data
jsonp: 'jsoncallback',
timeout: 25000,
success: function(data, status){
output.empty();
$.each(data, function(i,item){
var landmark = '<li><a href="detalleVino.html?ID=' + item.id_vino + '" data-id=' + item.id_vino + ' data-role="button" data-theme="b"><h3>'
+ item.nombre + '</h3>'
+ '<h3 align="right">'+item.precio + '</h3>'
+ '<p>'+item.denominacion + '</p></a></li>';
output.append(landmark);
alert("Cargado");
$('#vino-list').listview('refresh');
});
},
error: function(){
output.text('There was an error loading the data.');
navigator.notification.confirm(
'Something went wrong. Would you like to retry?',
yourCallback,
'Error',
'No,Yes'
);
}
});
}
WS的代码为:
<?php
include($DIRCONF . 'JSON.php');
$tipo=$_GET['TIPO'];
$ida='OK';
$json = new Services_JSON;
//Las varibales de conexion y bbdd las recuperamos de las constantes de config.ini.php
$conexion = mysql_connect(SERVIDOR_MYSQL, USUARIO_MYSQL, PASSWORD_MYSQL);
mysql_select_db(BASE_DATOS, $conexion);
//Obtenemos lista de amigos con amistad confirmada
$que = "SELECT id_vino,nombre,precio,nombre as denominacion FROM `VINOS` WHERE `VINO`.estado=1 AND `VINO`.codRestaurante=1 AND `VINO`.descripcion='$tipo'";
$res = mysql_query($que, $conexion) or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
$data[] = $row;
}
//Cerramos la conexion a la base de datos
mysql_close($conexion);
//Devolvemos el valor
//header("Content-type: application/json");
echo $_GET['jsoncallback'] . '(' . json_encode($data) . ');';
?>
WS已通过RESTClient测试,并且在json被invocate显示时是正确的:
jsonCallBack的数量+[{id_vino:2,nombre:Martinez la cuesta,precio:22,denominacion:DO la Rioja}]
我在navigator中执行,需要按F5键才能看到JSON,但在Android中没有看到任何东西
我不知道如何解决这个问题,如果这个应用程序是有可能与phonegap
我也尝试过最新版本的cordova,但结果相同
有人能帮我吗?我回答我的问题,我需要输入链接rel=external
现在正在工作检查您的服务url,它不工作。是的,正在工作我已将数据放入响应中,此代码中的url不是真实域。您能在此处显示您的url吗?如果我使用setTimeout,我可以刷新第一页,但如果索引有指向此页中其他第二页的链接,则不刷新,这是我的情况。在第二页不加载准备好的事件?你们为什么要知道这个URL,我已经检查过了,我把你们什么数据还给这个URL。