2016-11-20 6 views
1

JavascriptLogin in cordova mit phpmysql

<script type="text/javascript"> 
$(document).ready(function() 
{ 
$("#insert").click(function(){ 
var email=$("#email").val(); 
var pass=$("#pass").val(); 
var dataString="email="+email+"&pass="+pass+"&insert="; 
if($.trim(email).length>0 & $.trim(pass).length>0) 
{ 
$.ajax({ 
type: "POST", 
url:"http://www.gaurav2444.5gbfree.com/login.php", 
data: dataString, 
crossDomain: true, 
cache: false, 
beforeSend: function(){ $("#insert").val('Connecting...');}, 
success: function(data){ 
if(data=="success") 
{ 
alert("successful"); 
localStorage.login="true"; 
localStorage.email=email; 
window.location.href = "index.html"; 
} 
else if(data=="error") 
{ 
alert("error"); 
$("#insert").val('Login'); 
} 
} 
}); 
}return false; 
}); 
}); 
</script> 

Php: login.php

<?php 
include "db.php"; 
if(isset($_POST['insert'])) 
    { 
$email=$_POST['email']; 
$pass=$_POST['pass']; 
$sql = "SELECT * from `course_details` where `email`='$email' and `pass`='$pass'"; 
$result = mysqli_query($con, $sql); 

if (mysqli_num_rows($result) > 0) 
{ 
echo "success"; 
} 
else 
{ 
    echo "error"; 
} 
} 
?> 

db.php

<?php 
header("Access-Control-Allow-Origin: *"); 
$con = mysqli_connect("localhost:3306","","","gaurav_sos") or die ("could not connect database"); 
?> 

Programm funktioniert gut auf XAMPP-Server, aber wenn PHP-Dateien und Datenbank wird gehostet, es funktioniert nicht auf Cordova App. Zum Beispiel, wenn die Login-ID und das Passwort auf der Anmeldeseite eingegeben werden, die Dateien in XAMPP-Server sind, funktioniert es einwandfrei, aber wenn PHP-Dateien und -Datenbank gehostet werden und PHP-Dateien von Cordova App aufgerufen werden, gibt es kein Ergebnis. loginid: [email protected] Passwort: 123

+0

Blick auf den Server-Lügt! – ventiseis

Antwort

1

... Und das ist ein normales Verhalten für AJAX Cross-Domain-Anfragen - es nicht hat matther die manuelle Konfiguration des Access-Control-Allow-Origin-Header gesetzt.

Um Ihren Code zu arbeiten, müssen Sie irgendeine Art von einem Proxy verwenden, da CORS policy AJAX Anfragen verbieten (weil sie same-origin security policy verletzen), auf diese Weise können Sie Cross-Domain-AJAX-Anforderungen machen den Zugriff auf Ressourcen von Dritten Websites, wenn es nicht möglich ist, CORS auf Zielwebsite zu aktivieren, dh wenn Sie diese Website nicht besitzen.

Zum Beispiel können Sie zuerst PHP cross-domain proxy über AJAX anrufen, es leitet dann Ihre Anfrage an den realen Server.

Eine einfache Code-Änderung mit PHP Cross-Domain-Proxy-Bibliothek:

$.ajax({ 
    type: "POST", 
    url:"proxy.php", //This is where PHP cross-domain proxy is located 
    csurl: "http://www.gaurav2444.5gbfree.com/login.php" //Your remote server 
    }); 
Verwandte Themen