2012-03-26 7 views
4

Hallo Ich habe eine jQuery Ajax Anfrage für ein Login-System. Am Anfang hat es sehr gut funktioniert. Aber nach ein paar Versuchen begann es nur negative Reaktionen zu zeigen. Ich habe Firebug überprüft und es heißt, dass die Antwort in meinem Fall "Connected" ist. Aber die Ajax-Antwort zeigt nur "Not_connected". Ich weiß nicht, was zu tun ist :(Bitte helft mirJquery Ajax Anfrage mit einer alten Antwort

Das ist mein jQuery-Code:..

var data_str = "username="+usrn+"&password="+pwd; 
$.ajax({ 
    type: "POST", 
    url: "index.php?rnd=" + Math.random(), 
    data : data_str, 
    complete : function(xhr,data){ 
     if(data == 'connected'){window.location.href = 'admin.php';} 
      else if(data = 'not_connected'){ error_gen.html('Invalid username or password'); } 
      alert(data); 
     } 
}); 

AS für den PHP-Code:

$log_result = $u_obj->login_user(); 
if($log_result == true)/*user is connected*/ 
{ 
    echo 'connected'; 
    exit;/*stoping the script after sending the result*/ 
} 
    elseif($log_result == false)/*error while logging in*/ 
    { 
     echo 'not_connected'; 
     exit;/*stoping the script after sending the result*/ 
    } 
+0

Haben Sie eine manuelle Anmeldung versucht? wie Formular-basierte Anmeldung? Wie wäre es mit dem Versuch zu überprüfen, ob '$ log_result' eine gültige Antwort zurückgibt? – Joseph

Antwort

5

Blick auf diesen Thread: Is it possible to cache POST methods in HTTP?

Es kann sein, dass es Header gibt, die Browser die Antwort zwischenspeichern (obwohl es POST ist).

auch statt rnd =“+ Math.random() können Sie hinzufügen Schreib

$.ajax({ 
    type: "POST", 
    cache: false, 
    .. 
2

Könnte es sein Browser-Caching ? Versuchen Sie, diese $ .ajaxSetup Hinzufügen ({Cache: false});

0

Sie sind die falsche $ .ajax Option unter Verwendung des Ergebnisses abzurufen. Sie haben die Erfolg Option verwenden sollten. Nur ändern die

complete : function(xhr,data){ 

Linie für

success : function(data){ 

sollte es funktionieren.