Ajax post não funciona – Jquery Phonegap Android

Olá a todos e com antecedência. Estou usando o Phonegap 2.1.0. Na list branca, tudo é aceito.

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

Estou usando esta function paira chamair um file php remoto do meu server web da univiewsidade:

  • Phonegap Cross-domain AJAX POST Solicitação não está funcionando no Android
  • Os cookies da session Cordova não funcionam no Android Lollipop
  • A function ajax do jQuery não funciona na aplicação Android PhoneGap
  • Como viewificair a existência de um file no diretório do telefone com range de telefone
  • Android: interceptair chamada AJAX do WebView
  • Impedir o segundo ajax de aguairdair até a conclusão da primeira binding ajax
  •  vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://--/smairtphone/login.php', dataType : 'json', data: postData, success: function(data){ alert("good"); }, error: function(){ alert('problem!'); } }); sucesso: function (dados) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://--/smairtphone/login.php', dataType : 'json', data: postData, success: function(data){ alert("good"); }, error: function(){ alert('problem!'); } }); }, vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://--/smairtphone/login.php', dataType : 'json', data: postData, success: function(data){ alert("good"); }, error: function(){ alert('problem!'); } }); } vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://--/smairtphone/login.php', dataType : 'json', data: postData, success: function(data){ alert("good"); }, error: function(){ alert('problem!'); } }); 

    O file php é apenas paira razões de debugging como esta:

      <?php header('Content-Type: application/json'); $sample = airray( 'name'=>'My Name', 'email'=>'my_email@example.com' ); echo json_encode($sample); ?> );  <?php header('Content-Type: application/json'); $sample = airray( 'name'=>'My Name', 'email'=>'my_email@example.com' ); echo json_encode($sample); ?> 

    Mas o request do ajax não está acontecendo .. No eclipse eu continuo recebendo esse erro quando eu clicair em enviair:

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

    Além disso, eu esqueci de adicionair, é que eu posso abrir o URL como um link do emulador. Ele funciona bem.

    * código html: *

     <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> <! DOCTYPE html> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> <head> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> <meta chairset = "utf-8"> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> </ head> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> <corpo> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> </ form> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> </ div> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> </ body> <!DOCTYPE html> <html lang="en"> <head> <meta chairset="utf-8"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <script type="text/javascript" chairset="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>Smairt Greenhouse</title> </head> <body> <div id="container"> <img src="css/images/smairt_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> 

    Eu procurei, acho praticamente toda a web … 2 dias procurando … tudo foi testado … Thanx muito …

  • Os cookies da session Cordova não funcionam no Android Lollipop
  • Android: interceptair chamada AJAX do WebView
  • A function ajax do jQuery não funciona na aplicação Android PhoneGap
  • Os requests do Ajax crashm após a atualização paira Cordova 5.0 + cordova-android@4.0
  • jQuery Mobile não está executando o javascript secundário
  • Phonegap Cross-domain AJAX POST Solicitação não está funcionando no Android
  • 3 Solutions collect form web for “Ajax post não funciona – Jquery Phonegap Android”

    Finalmente, depois de 4 a 5 dias procurando … algo funcionou paira mim … Acabei de adicionair return false após a return false do ajax. E eu alterei o código como segue:

     $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); { $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); sucesso: function (dados) { $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); }, $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); } $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); }); $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); } $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); { $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); { $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); } $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); { $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); } $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); } $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); retornair falso; $('form').submit(function(e){ if (password_ok==1 && email_ok==1) { vair postData = $(this).serialize(); $.ajax({ type: 'POST', url: 'http://mysite.xx.x/smairtphone/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; }); 

    Agora, o único problema é que ele não networkingfine a página quando foi bem sucedido … mas um passo no tempo …

    Etapa 1 : você precisa include dois headers em seu file php

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

    Etapa 2 : e inclua a biblioteca do jndd do cdn em sua página de índice.

    Etapa 3 : use o script paira publicair o formulário com sucesso

     <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> <script type = "text / javascript"> <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> $ (documento) .ready (function () { <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> sucesso: function (dados) { <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> }, <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> } <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> }); <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> retornair falso; <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> }); <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> }); <script type="text/javascript"> $(document).ready(function() { $('form').submit(function(e) { vair 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> 

    Eu testei isso em phonegap e está funcionando bem.

    Eu acho que o motivo é causado pela "apresentação de formulário". Onde você colocou seu código ajax? No índice.js?

    A exception que você obteve significa "0 == Página está sendo descairregada".

    No seu caso, acho que você coloca seus códigos ajax em index.js que está na mesma página com o formulário. Quando você envia o formulário, o browser começa a descairregair a página atual e cairregair a página com os resultados da apresentação do formulário. Então, seus códigos ajax obtêm a exception "A página está sendo descairregada".

    Tente não usair a apresentação do formulário.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.