Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] no lee datos php desde phonegap

Estas en el tema de no lee datos php desde phonegap en el foro de Jquery en Foros del Web. Hola! he creado una aplicación con html y jquerymobile en la que me conecto a una url externa para obtener datos. Cuando ejecuto la app ...
  #1 (permalink)  
Antiguo 06/11/2013, 11:02
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
no lee datos php desde phonegap

Hola!

he creado una aplicación con html y jquerymobile en la que me conecto a una url externa para obtener datos.
Cuando ejecuto la app en local (con apache desde localhost del navegador) realiza bien las consultas y demás. Cuando lo convierto en Android con phonegap y lo pruebo desde mi movil, es como si no conectara, yno entiendo por qué en uno si y en el otro no...

Mi código es el siguiente:
Código PHP:
function cargarPost(idPost){
    $.
ajax({
            
url'http://miurlexterna.com/datosphonegap.php',
            
data: ({id:idPost}),
            
async:true,
            
/*cache: false,
  dataType: 'json', he probado con esto tambien*/
            
success: function(datos){
                var 
content=[];
                var 
dataJson=eval(datos);
                $(
'#titresbuc').html(dataJson[0].titulo);
                $(
'#resbuc').html(dataJson[0].cont);
                
//$("#lista").append(content.join(""));
                //$("#lista").listview('refresh');
            
},
            
error: function(datos){
                
alert('error');
                
            },
            
        });
        

Que lo que hace es cargar los datos de un artículo determinado según su id

Alguna idea?
  #2 (permalink)  
Antiguo 06/11/2013, 12:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: no lee datos php desde phonegap

lo primero que tienes que hacer es verificar si desde el móvil puedes acceder a la urlexterna.com.

recuerda que ya no estás bajo el localhost, y puede haber una serie de obstáculos entre el enlace de conexión del mobil y tu servidor
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 07/11/2013, 03:47
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

Eso ya lo había probado, de hecho, la prueba de phonegap la tengo en local y el script que consulta la base de datos y devuelve el resutado en json está subido en un servidor...

Además ejecutro la url desde mi móvil y veo que devuelve correctamente en formato json
  #4 (permalink)  
Antiguo 07/11/2013, 04:44
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: no lee datos php desde phonegap

Una llamada por ajax sólo se puede realizar a una página alojada en el mismo dominio donde está el script que hace la llamada ajax.

Para realizar peticiones asíncronas a otros dominios desde javascript, se usa la técnica jsonp.
  #5 (permalink)  
Antiguo 07/11/2013, 07:46
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

Hola Marlanga,
y lo de jsonp en qué influye? solamente poniendolo en la llamada? Porque lo pongo asi y me devuelve error... tengo que cambiar algo mas?

Código PHP:
function cargarPost(idPost){
    $.
ajax({
            
url'http://miurlexterna.com/datosphonegap.php',
            
data: ({id:idPost}),
            
async:true,
            
cachefalse,
            
dataType'jsonp',
            
success: function(datos){
                var 
content=[];
                var 
dataJson=eval(datos);
                $(
'#titresbuc').html(dataJson[0].titulo);
                $(
'#resbuc').html(dataJson[0].cont);
                
//$("#lista").append(content.join(""));
                //$("#lista").listview('refresh');
            
},
            
error: function(datos){
                
alert('error');
                
            },
            
        });
        

luego en la llamda php de mi sitio, devuelvo asi:
echo ''. json_encode($arr).'';

donde en $arr tengo un array que devuelve los resultados...

En local funciona sin json, en cuando pongo jsonp me devuelve error...
  #6 (permalink)  
Antiguo 07/11/2013, 11:12
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: no lee datos php desde phonegap

El error que te devuelve es el identificador del problema que está ocurriendo; para eso sirven los errores. Léelo y busca como se soluciona. Por otro lado, ¿te has molestado en leer la documentación oficial de jquery sobre el uso de jsonp?
  #7 (permalink)  
Antiguo 08/11/2013, 10:00
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

PUes leer, he leido un montón! en la doc oficial, además de que está en ingles y tengo mis limitaciones, solo encuentro json.

He probado un montón de tutoriales, he puesto y he quitado cosas...crossDomain: true, jsonpCallback:'jpCallback',

en el archivo del servidor si que he visto lo siguiente:
Código PHP:
if(isset($_GET['callback'])){
        
/*Si es una petición cross-domain (JSONP), devolvemos
        en la respuesta el identificador de la petición. */
        
echo $_GET['callback'].'('.json_encode($arr).')';
    } else{
        
// Si es una peticion normal (JSON)
        
echo json_encode($arr);
    } 
y con respecto al error, me devuelve Requested JSON parse failed

la mayoría de la información que encuentro está en ingles y cada uno dice una cosa... me estoy volviendo loca!

Última edición por leeann699; 08/11/2013 a las 10:14
  #8 (permalink)  
Antiguo 09/11/2013, 05:30
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

Y lo quemás me mosquea es que en local si me carga bien los datos en json y jsonp... No me funciona cuando lo convierto en android y lo paso al móvil. Lo tengo igual que aqui:
http://uno-de-piera.com/ajax-cross-domain-con-jsonp/

No sé qué más hacer ni dónde buscar...
  #9 (permalink)  
Antiguo 11/11/2013, 08:28
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

También le he puesto el siguiente permiso al config.xml para que el dominio no sea ningún problema:
<access origin="*" subdomains="true"/>

y sigue con el mismo error... requested json parse failed
  #10 (permalink)  
Antiguo 12/11/2013, 03:28
 
Fecha de Ingreso: septiembre-2013
Mensajes: 46
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: no lee datos php desde phonegap

Y por fin lo conseguí! más de una semana buscando y casi me vuelvo loca... no sé al final lo que estaba mal, pero os digo cómo me ha quedado por si a alguien le sirve de ayuda.

En la llamada ajax, he añadido lo siguiente:
dataType: 'jsonp',
jsonp: 'jsoncallback',

y en el php del servidor, he puesto la siguiente cabecera
header('Content-type: application/json');

y al devolver el array con la busqueda de datos:
echo $_GET['jsoncallback']. '(' . json_encode($arr) . ');';

muchas gracias.

Etiquetas: lee, phonegap, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:47.