Ajax no funciona – Jquery Phonegap Android

Hola a todos y gracias por adelantado. Estoy usando Phonegap 2.1.0. En la lista blanca todo es aceptado.

**<access uri="*" subdomains="true" /> <access origin=".*" subdomains="true"/>** 

Estoy utilizando esta función para llamar a un archivo php remoto de mi servidor web universitario:

 var postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://--/smartphone/login.php', dataType : 'json', data: postData, success: function(data){ alert("good"); }, error: function(){ alert('problem!'); } }); 

El archivo php es sólo por razones de depuración como esta:

  <?php header('Content-Type: application/json'); $sample = array( 'name'=>'My Name', 'email'=>'[email protected]' ); echo json_encode($sample); ?> 

Pero la solicitud de ajax no está sucediendo .. en eclipse sigo recibiendo este error cuando hago clic en enviar:

 JSCallback Error: Request failed with status 0 at file:///android_asset/www/js/cordova-2.1.0.js:3743 

Lo que es más, me olvidé de añadir, es que puedo abrir la url como un enlace desde el emulador. Funciona bien.

* Código html: *

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" charset="utf-8" src="js/cordova-2.1.0.js"></script> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script type="text/javascript" src="js/index.js"></script> <title>Smart Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smart_green_house.png" class="logo" alt="l1ogo" /> <form id="login_form" class="first_display" > <label class="title"> E-mail:</label> <input id="1" type="email" class="input" size="45" name="email" /> <label class="title"> password:</label> <input id="2" type="password" class="input" size="45" name="password" /> <input id="3" class="submit_type" type="submit" value="login" /> </form> </div> </body> </html> 

He buscado creo que casi toda la web … 2 días de búsqueda … todo ha sido probado .. Thanx mucho ..

Finalmente, después de 4-5 días de búsqueda .. algo funcionó para mí .. Acabo de añadir return false después de la devolución de llamada ajax. Y cambié el código como sigue:

 $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { var postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smartphone/login.php', dataType : 'json', data: postData, success: function(data){ alert(data); }, error: function(){ alert('error!'); } }); } else { e.preventDefault(); if (email_ok==2) { $("#1").css("border-color","red"); $("#1").css("background-color","#FFD8CE"); } if (password_ok==2) { $("#2").css("border-color","red"); $("#2").css("background-color","#FFD8CE"); } } return false; }); 

Ahora, el único problema es que no restablece la página cuando se realiza correctamente … pero un paso a la vez …

Paso 1 : Es necesario incluir dos encabezados en su archivo php

 header('Content-Type: application/json'); header("Access-Control-Allow-Origin: *"); 

Paso 2 : Incluya la biblioteca cdn jquery en su página de índice.

Paso 3 : utilizar el script para publicar el formulario correctamente

 <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { var postData = $(this).serialize(); $.ajax({ type : 'POST', url : 'http://www.yoururl/test.php', dataType : 'json', data : postData, success : function(data) { alert(data); }, error : function() { alert('error!'); } }); return false; }); }); </script> 

Lo he probado en el teléfono y está funcionando bien.

Creo que la razón es causada por "Presentación de formulario". ¿Dónde puso su código ajax? En el index.js?

La excepción que tienes significa "0 == Page está descargando."

En su caso, supongo que poner sus códigos ajax en index.js que está en la misma página con el formulario. Cuando envía el formulario, el navegador empieza a descargar la página actual y carga la página con los resultados de la presentación del formulario. Así que sus códigos ajax obtener la excepción "La página está descargando".

Trate de no utilizar el envío de formularios.

  • Determinación de Tap largo (Long Press, Tap Hold) en Android con jQuery
  • Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
  • Cómo guardar credenciales en Android / jQuery Mobile App
  • ¿Cómo conseguir que Flowplayer se reproduzca automáticamente en Android WebView?
  • Android Browser Problema con jQuery Ajax y cuando se utiliza appcache
  • "Net :: ERR_CACHE_MISS" al cargar una URL externa en Córdoba
  • Impresión de jquery móvil (phonegap) aplicación en android
  • jquery mmenu de frebsite no funciona en orientación horizontal en móvil (android)
  • JQuery evento de clic no funciona en los navegadores móviles
  • Bootstrap 2.3 Problemas de menú plegables en Android Mobile
  • JQuery - Android - El evento 'Keyup' no funciona en retroceso en Chrome
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.