2016-09-02 3 views
-1

Ich verwende eine Ajax-Login, die auf Wamp Server Fenster perfekt funktionieren senden, aber wenn ich bereits in Xamp auf kali Linux geben‘es nicht funktioniert:Ich kann nicht Ajax-Request mit XAMP

$.ajax({ 
        url: baseurl + 'index.php?login/ajax_login', 
        method: 'POST', 
        dataType: 'json', 
        data: { 
         username: $("input#username").val(), 
         password: $("input#password").val(), 
        }, 
        error: function() { 

         alert("An error occoured!"); 
        }, 

Wenn ich auf den Login Button klicke zeigt es: Ein Fehler ist aufgetreten! Ich weiß nicht, wo das Problem ist, weil die App perfekt auf wampserver funktioniert. Ich wünschte, du hilfst mir. für die Frameworks bin ich mit CodeIgniter.

hier ist es die Form:

<form method="post" role="form" id="form_login"> 

        <div class="form-group"> 

         <div class="input-group"> 
          <div class="input-group-addon"> 
           <i class="entypo-user"></i> 
          </div> 

          <input type="text" class="form-control" name="username" id="username" placeholder="nom.prenom" autocomplete="off" /> 
         </div> 

        </div> 

        <div class="form-group"> 

         <div class="input-group"> 
          <div class="input-group-addon"> 
           <i class="entypo-key"></i> 
          </div> 

          <input type="password" class="form-control" name="password" id="password" placeholder="Password" autocomplete="off" /> 
         </div> 

        </div> 

        <div class="form-group"> 
         <button type="submit" class="btn btn-primary btn-block btn-login"> 
          <i class="entypo-login"></i> 
          Login 
         </button> 
        </div> 


       </form> 

hier ist es die ajax_login.php ist:

function ajax_login() { 

    $response = array(); 

    //Recieving post input of email, password from ajax request 

    $username = $_POST["username"]; 

    $password = $_POST["password"]; 

    $response['submitted_data'] = $_POST; 



    //Validating login 

    $login_status = $this->validate_login($username, $password); 

    $response['login_status'] = $login_status; 

    if ($login_status == 'success') { 

     $response['redirect_url'] = $this->session->userdata('last_page'); 
    } 

    //Replying ajax request with validation response 
    echo json_encode($response); 

} 

es ist eine Funktion innerhalb einer Controller namens Login, und dies ist der baseurl:

$config['base_url'] = 'http://localhost/elit'; 

ich benutze codeIgniter framework

+0

kann zeigen Sie mir die HTML-Formular plz – Laith

+0

@Laith ja natürlich :) – fodilleo

+0

Können Sie 'Fehler ersetzen: function ....}' mit 'Fehler: function (XHR, Ajaxoptions, thrownError) { alert (xhr .Status); }, ' –

Antwort

-1

Ok gefunden paar Dinge, die in dem HTML-Formularcode fehlen:

Edit: Nach der Lektüre Quentin Kommentare und die Informationen, die er zur Verfügung gestellt, das Recht ich das Teil nehmen, wo ich sagte:

First you did not include the action in the form tag , the action means where this form data are going to be either submitted or whatever the is going to happen on that form , where it going ?

die richtigen Informationen ist dies:

The action attribute is optional. If omitted, the form is submitted to the current URL. That's irrelevant though since the form isn't being submitted. JavaScript is reading the data from it and making the HTTP request instead. For correcting my information about the Action attribute .

Danke Quentin für die richtigen Informationen.

bearbeiten ich den Formularcode und den AJAX-Code durch einen neuen, aber mit wenigen Änderungen, dieser Code für mich auf XAMP perfekt funktioniert:

<form action="" method="post" role="form" id="form_login" onsubmit="return UserSignIn();"> 
       <div class="form-group"> 
        <div class="input-group"> 
         <div class="input-group-addon"> 
          <i class="entypo-user"></i> 
         </div> 
         <input type="text" class="form-control" name="username" id="username" placeholder="nom.prenom" autocomplete="off" /> 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="input-group"> 
         <div class="input-group-addon"> 
          <i class="entypo-key"></i> 
         </div> 
         <input type="password" class="form-control" name="password" id="password" placeholder="Password" autocomplete="off" /> 
        </div> 
       </div> 
       <div class="form-group"> 
        <button type="submit" class="btn btn-primary btn-block btn-login"> 
         <i class="entypo-login"></i> 
         Login 
        </button> 
       </div> 
      </form> 

Der AJAX-Code:

<script> 
    function UserSignIn() 
     { 
      var username = document.getElementByI('username').value; 
      var password = document.getElementByI('username').value; 

      if(username && password) 
      { 
       $.ajax({ 
       type: 'POST', 
       url: '', 
       data: { 
        username, 
        password 
       }, 
       success: function(response) { 
        alert("Code Works"); 
       }, 
        error: function(response){ 
        console.log(response); 
        } 
       }); 
      } 
     return false; 
     } 
</script> 

Hinweis : In diesem Teil url: '' PLZ die Zielseite, die die Daten aus dem AJAX-Code erhalten. Wenn sich die php-Seite zum Beispiel im selben Ordner wie die Seite befindet, in der sich dieses Formular befindet, geben Sie diese Seite ein, z. B .: url: 'login.php', wenn login.php in einem anderen Ordner vorhanden ist dies: url: 'login/login.php'.

Jetzt, wenn Sie tun, was ich Sie gebeten zu tun, klicken Sie auf Absenden, wenn es Alarm-Box anzeigen, die sagt, dass Code funktioniert !! Das bedeutet, dass der Code perfekt funktioniert und Sie gut daran sind, ihn mit Ihren Bedürfnissen zu bearbeiten, aber wenn nicht, dann müssen wir Ihren PHP-Code sehen.

Hoffe, dass Sie Ihr Problem beheben, lassen Sie mich wissen, wenn Sie weitere Erklärungen benötigen.

+0

Nun, ich habe diese Änderungen gemacht, aber leider das gleiche Problem, sollten Sie daran denken, dass die App wie es funktioniert perfekt auf WampServer, so denke ich, dass ich nur einige Konfiguration brauche, danke trotzdem;) – fodilleo

+0

ja es wird nicht funktionieren Denn jetzt muss ich den PHP-Code auch bearbeiten lol merke ich, wenn ich den gesamten PHP-Code bearbeitet habe? der PHP-Code sollte die Parameter selbst nehmen, und er wird nicht von einer Funktion – Laith

+0

@fodilleo im Eingeben eines PHP-Codes aufgerufen und ich werde PDO verwenden. – Laith

Verwandte Themen