2016-08-03 13 views
0

Ich versuche, Daten von einem Formular zu einem Codeigniter-Controller in einem Web-Server, die ich auf einem Host online bereitgestellt. Es funktioniert, wenn ich es auf meinem Laptop benutze, aber nachdem ich es in build.phonegap.com baue und es in meinem Telefon installiere, funktioniert es nicht. Hier ist der Code in der Datei index.html:Phonegap/AJAX/Codeigniter - Ajax Beitrag funktioniert nicht

Javascript:

function sendMessage(){ 
      //get values from the form 
      var msgFrom = $('#msgFrom').val(); 
      var msgTo = $('#msgTo').val(); 
      var msg = $('#msg').val(); 

      //works up to here only after building on build.phonegap.com 
      $.ajax({ 
       traditional: true, 
       type: 'POST', 
       dataType:'json', 
       url: '<...>/welcome/savePostData', 
       data: 'numberTo='+msgTo+'&numberFrom='+msgFrom+'&message='+msg, 

       success: function(resp) { 
        Materialize.toast("Posted", 5000); 

       } 

      }); 

     } 

Hier sind die Ressourcen in meinem HTML-Code:

<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script> 
    <script type="text/javascript" src="js/jquery.mobile-1.4.5.js"></script> 
    <script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script> 

Weitere Details:

  • Ich habe erstellt die App in Ubuntu nur mit diesem Befehl: cordova create <appname>
  • Ich laufe immer noch auf android kitkat (lol)
  • ich meinen Controller in freewebhostingarea.com eingesetzt

Antwort

0

Bitte fügen Sie Whitelist-Plugin in Ihrem Projekt.

cordova plugin add cordova-plugin-whitelist --save 

Das wird HTTP-Anfrage in Ihrem Android-Gerät ermöglichen. Und überprüfen Sie auch Ihr Android AndroidManifest.xml.It diese Berechtigung

<uses-permission android:name="android.permission.INTERNET" /> 

im letzten braucht fügen Sie diese Zeilen in Ihrer config.xml

<access origin="*"/> 
<allow-intent href="*"/> 
<allow-navigation href="*"/> 

dann Ihre HTTP-Anforderung funktioniert richtig thanks.For weitere Details Bitte lesen Sie diese Whitelist

+0

hallo, danke für die antwort, ich tat alles, was du gesagt hast und es wird immer noch nicht funktionieren. welche AndroidManifest.xml bearbeite ich trotzdem? der eine im Ordner 'cordovaLib' oder der im Ordner 'android'? –

0

es klingt wie die mobile Ajax ist nicht aktiviert. hast du $ .support.cors auf true gesetzt?

Quelle: http://demos.jquerymobile.com/1.0/docs/pages/phonegap.html

+0

wo kann ich es aktivieren? –

+0

nicht wirklich zu sicher, um ehrlich zu sein, haben Sie irgendwo eine jquery Einstellungsdatei? Ich bin mit Phonegap völlig unbekannt und habe diese Antwort nur gefunden, indem ich wirklich schnell gegoogelt habe, aber es scheint, als würde es dein Problem beheben – jwerardi

0

Um Cross-Domain zu verwenden AJAX fordert Sie müssen den folgenden Code am Ende Ihrer config.xml-Datei hinzuzufügen. Das ist was für mich funktionierte:

<access origin="*"/> 
    <gap:plugin name="cordova-plugin-whitelist" source="npm"/> 
    <access url="*" subdomains="true"/> 
    <allow-intent href="http://*/*"/>