2010-12-16 7 views
0

Nach meinem Code, der in Code funktioniert ignitor 1.7.1 jetzt nicht in der Lage Controller Controller Methode Benutzer/checkAvailability zu starten? RequestSource = USER_AVAILABILITY es goves zu Fehlerblock und Druckalarm als Alarm ('In side Error');Nicht in der Lage, Ajax Anfrage in Code zu verarbeiten ignitor1.7.3

fand ich, dass keiner von JQuery Ajax-Anfrage nicht funktioniert ..

nicht in der Lage zu verstehen, warum seine,

Bitte helfen

function checkAvailability(){ $.blockUI({message: null}); 
    var newMessage = 'E1'; 
    $('#searchLoading').show();  alert('I am here');  $.ajax({ 
       type: "post", 
       url: "user/checkAvailability?requestSource=USER_AVAILABILITY", 
       cache: false,    
       data: "userName=" + $("#userName").val(), 
       success: function(json){ 
        alert("Printing Json"); 
        try{ 
         $.unblockUI();     
         var obj = JSON.parse(json);           

         if(obj[0].STATUS=='true'){             
          newMessage = "E15"; 
          $('#checkUser').hide();       
         }else{ 
          newMessage = "E16";      
          $("#checkUser").hide();      
         }     
         showMessage(newMessage); 
         $('#searchLoading').hide(); 
        }catch(e) {  
          alert('In side Exception'); 
          showMessage("E1"); 
          $.unblockUI(); 
          $('#searchLoading').hide(); 
        }  
       }, 
       error: function(){ 

        alert('In side Error'); 
        $('#searchLoading').hide(); 
        $.unblockUI();     
        $("#checkUser").hide();      
        showMessage(newMessage);   
        $("form")[0].reset(); 

       }  }); 
      } 

CI-Methode in Controller

nicht Controller-Methode gehen nennen Benutzer

/** 
     This method is used to check User Name availabiliy. 
    */ 

    public function checkAvailability(){  

     $userName = trim($this->input->post('userName')); 

     $query = $this->UserModel->getUser($userName); 

     $status =array("STATUS"=>"true"); 

     if($query){ 
      $status = array("STATUS"=>"false"); 
     } 

     echo json_encode (array($status)) ; 
    } 
+0

Können Sie den CI-Code veröffentlichen? – Fred

+0

erledigt, bitte überprüfen – Vicky

+1

Es ist CodeIgniter. –

Antwort

1

Der Fehler tritt normalerweise auf, wenn die AJAX-Anforderung ausgeführt wird die Seite nicht erreichen.

ändern Sie die URL in Ihrem AJAX-Request in einen absoluten Pfad dh

url: "/user/checkAvailability?requestSource=USER_AVAILABILITY"

oder

url: "http://site.com/user/checkAvailability?requestSource=USER_AVAILABILITY"

+0

Hallo versuchte mit diesem aber immer noch gibt es ein Problem http: //localhost/businesscaliber/index.php/user/checkAvailability? requestSource = USER_AVAILABILITY – Vicky

1

Die größte Ursache von Problemen für die Menschen zu 1.7.3 Upgrade ist, dass sie überschreiben ihre Konfigurationsdateien. Stellen Sie sicher, dass ALLE Konfigurationsdateien zuvor gesichert oder später wiederhergestellt wurden.

Soden alle in 1.7.3 abgesehen von einem Sicherheits-Hotfix in einer Zeile geändert, die AJAX nicht brechen würde.

+1

Auch dies ist AJAX, also verwenden Sie Firebug, um es zu debuggen. Sie werden den Fehler sofort herausfinden, wenn Sie sich die Antwort ansehen. –

+0

Ist für Ajax eine Konfiguration erforderlich? Auch habe ich mit Firebug keinen Fehler gefunden. – Vicky

+0

Wie lautet die Antwort für die Anforderung dieses AJAX-Aufrufs? Schaust du dir die Registerkarte Konsole an? Weißt du, wie AJAX und Firebug funktionieren? :) –

0

Vielleicht versuchen Sie auch explizit, die Eigenschaft dataType auf json zu setzen, wenn Sie die AJAX-Anfrage in JQuery machen. Es könnte sein, dass JQuery versucht, den JSON als etwas anderes zu parsen.

dataType:'json' 

Mehr Infos hier: http://api.jquery.com/jQuery.ajax/

Und ich würde echo Phil Rat entweder Firebug oder die Entwicklerkonsole in Chrome zu verwenden, um herauszufinden, was Ihre AJAX-Request passiert.

+0

JSON kommt Bild später, wenn es eine Antwort gibt. aber mein Problem ist, ich bin nicht in der Lage, Ajax Request – Vicky

+0

Ich verstehe. Mein Fehler. Sie deserialisieren den JSON in Ihrer Callback-Funktion. Ich dachte, du nutzt JQuerys eigene JSON-Deserialisierung. Vergiss es. Fortfahren! :-) –

0

Stellen Sie sicher, querystrings in config.php aktiviert haben

sollte

Änderung

$config['enable_query_strings'] = FALSE; 

zu

um die Linie 151 von System/application/config/config.php

sein
$config['enable_query_strings'] = TRUE; 

Ich nehme an, es gibt einen Grund, warum Sie haben? RequestSource = USER_AVAILABILITY ta ging auf die URL.

Auch ja, verwenden Sie die vollständige URL (einschließlich http: //) in Ihrer Ajax-URL.

Verwandte Themen