2016-05-25 5 views
1

Ich entwickle eine Andorid-Anwendung mit PhoneGap und ich versuche, eine Authentisierung zu machen. Ich habe eine einfache Form in einer HTML-Datei, in einer JS-Datei auf der Veranstaltung klicken sould die Ajax starten, die eine PHP-Datei in dem Remote-Server für die autentication aktivieren, hier die JS ist:PhoneGap Authentifizierung mit Ajax

$("#login").click(function(){ 
var username=$("#username").val(); 
var password=$("#password").val(); 
var dataString="username="+username+"&password="+password; 

    $.ajax({ 
     type: "POST", 
     url: "http://@@##.altervista.org/test.php", 
     data: dataString, 
     beforeSend: function(){ $("#login").html('Connecting...');}, 
     success: function(responce){ 
      if(responce=='success') 
      { 
       localStorage.login="true"; 
       localStorage.username=username; 
       window.location.href = "index.html"; 
      } 
      else 
      { 
       alert("Login error"); 
       $("#login").html('Login'); 
      } 
     } 
    }); 
return false;}); 

Die PHP-Datei ist ein einfaches Echo "Erfolg". Wenn ich es starte, bleibt es in der Funktion beforeSend stecken.

security-policy:

<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *" />

config.xml:

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> 
    <name>Hello World</name> 
    <content src="index.html" /> 
    <preference name="DisallowOverscroll" value="true" /> 
    <preference name="android-minSdkVersion" value="14" /> 
    <plugin name="cordova-plugin-battery-status" source="npm" spec="~1.1.1" /> 
    ****some plugin, icon and splash that i need***  
    <access origin="*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 
    <allow-intent href="geo:*" /> 
    <platform name="android"> 
     <allow-intent href="market:*" /> 
    </platform> 
    <engine name="android" spec="~5.1.1" /> 
</widget> 
+0

Bitte geben Sie auch Ihre config.xml und den '' Abschnitt Ihrer index.html, insbesondere das Content-Security-Policy Meta-Tag. Die korrekte Konfiguration dieser Faktoren kann hier eine Rolle spielen. –

+0

@MarcoCuccagna Bearbeiten Sie Ihre Post mit dieser Info – piterio

Antwort

0

Haben Sie in der Konsole einen Fehler haben? Sie können zum Abschnitt "Netzwerk" gehen und die gesendete Anfrage sehen. Aber versuchen Sie mit diesem:

$("#login").click(function(){ 
var username=$("#username").val(); 
var password=$("#password").val(); 
var dataString="username="+username+"&password="+password; 

    $.ajax({ 
     type: "POST", 
     url: "http://@@##.altervista.org/test.php", 
     data: {username: username, password: password}, 
     beforeSend: function(){ $("#login").html('Connecting...');}, 
     success: function(responce){ 
      if(responce=='success') 
      { 
       localStorage.login="true"; 
       localStorage.username=username; 
       window.location.href = "index.html"; 
      } 
      else 
      { 
       alert("Login error"); 
       $("#login").html('Login'); 
      } 
     } 
    }); 
return false;}); 
+0

ich versuchte es, aber das Ergebnis ist das gleiche, die Konsole sagen, dass es nicht das Skript jquery finden kann, aber der Link ist korrekt –

+0

@MarcoCuccagna sollten Sie versuchen, eine andere URL verwenden. Meine Konsole sagt: 'XMLHttpRequest kann nicht laden http: //% 40 @ /. Cross-Ursprungsanforderungen werden nur für Protokollschemas unterstützt: http, data, chrome, chrome-extension, https, chrome-extension-resource.Sie können einige Informationen über diesen Fehler suchen – piterio

1

Offenbar ist es ein Sicherheitsproblem, wenn ich es in einem Remote-Server ausgeführt ist es ein XMLHttpRequest Problem auf: „Cross Herkunft Anforderungen nur für Protokollsysteme werden unterstützt: http, Daten, Chrom, Chrom -extension, https, chrome-extension-resource, ". Wenn ich es durch das phonegap Entwickler-Tool ausführen, funktioniert es.