Ankündigung

Einklappen
Keine Ankündigung bisher.

jquery ajax wird nicht ausgeführt

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jquery ajax wird nicht ausgeführt

    Hallo Leute,

    Ich habe eine ganz einfache Ajax Funktion gebaut:


    Code:
    <script type="text/javascript">
    $(document).ready(function()
    {
           $.ajax
           ({
    
              type: "POST",
              url: 'AJAX_Info_Box',
              success: function(data)
    {
    if(data.success == true)
                 {
                 alert('alles fein');
                 }
              },
    
              error: function()
    {
                  alert('irgent was geht nicht');
              }
           });
    });
    </script>
    Ich sehe in der Konsole dass ich eine Antwort bekomme.

    Aber ich bekomme weder einen Fehler noch die Antwort.

    jquery ist da und geht auch, wenn ich vor dem ajax Teil oder danach ein alert mache kommen die auch.

    Die URL wird mit mod rewrite aufgelöst das geht auch da ich ja eine Antwort bekomme.

    Hat wer eine Idee was ich Falsch mache?

    Danke und Gruß
    René


  • #2
    Welche Antwort bekommst du denn? Ich denke mal die enthält kein
    success = true

    Kommentar


    • #3

      Doch das ist drin zumal er ja dann wenn dem nicht so wäre „irgent was geht nicht“ ausgeben sollte aber das kommt auch nicht.

      Kommentar


      • #4
        Nein, das ist genau dein Denkfehler! Der läuft nicht in die ERROR-Function, wenn dein IF in der SUCCESS-Funktion nicht erfüllt ist. Da läuft der nur rein, wenn z.B. die URL nicht erreichbar ist.
        Bau mal einen ELSE-Zweig in deine Success-Function.

        Kommentar


        • #5
          In die Developer-Tools des Browsers schauen, dort steht drin ob der Request gesendet wurde und was die Antwort ist.

          Kommentar


          • #6
            Es wäre hilfreich, wenn Du uns mal zeigst, was "AJAX_Info_Box" zurückgibt.

            Kommentar


            • #7
              Vielen Dank an alle die geholfen haben.

              Ich habe es nun dank dem ELSE-Zweig gesehen und abgeändert.

              Gruß
              René

              Kommentar


              • #8

                Code:
                $(document).ready(function()
                {
                       $.ajax
                       ({
                          type: "POST",
                          // URL stellt aktuell einen relativen Bezug dar
                          // besser wäre '/AJAX_Info_Box' oder '/completeRewritePath/AJAX_Info_Box' , je nach dem, wie dein Rewrite auf dem Webserver ausschaut
                          // durch den relativen Bezug ist das sonst abhängig davon von welcehr Seite aus das Script aufgerufen wird / wo es eingebunden ist
                          url: 'AJAX_Info_Box',
                          beforeSend: function() 
                          {  
                             alert('starte Request');
                          },
                          // aufruf erfolgt, wenn der HTTP Request erfolgreich war (200er Status codes)
                          success: function(data)
                          {
                             alert('Anfrage erfolgreich');
                             if(data.success == true)
                             {
                                alert('alles fein');
                             }
                             else
                             {
                                 alert('unerwartete/fehlerhafte Daten :-(');
                             }
                          },
                          // wird aufgerufen, wenn es einen Übertragungsfehler gab, also der HTTP Status code 404 oder ein 500er ist oder es Netzwerkfehler gibt usw.
                          error: function()
                          {
                              alert('irgendwas geht nicht');
                          },
                          // wird immer aufgerufen, egal wie das Ergebnis des Requests ist.
                          // kann man Nutzen um z.B. einen Ladebildschirm auszublenden 
                          complete: function()
                          {
                              alert('Request fertig.');
                          }
                       });
                });
                </script>
                By the way sollte statt success, error, complete künftig done, fail, always verwendet werden, siehe jquery Dokumentation

                @see http://api.jquery.com/jquery.ajax/

                Kommentar


                • #9
                  Tja, da war ich wohl doch leicht zu spät mit meiner Antwort

                  Kommentar


                  • #10
                    Das nächste mal versuche ich auf dich zu warten *g*



                    Gruß
                    René

                    Kommentar


                    • #11
                      Jetzt komme ich doch noch mit einem Nachtrag.

                      Meine Info Box Funktioniert super um nicht zu sagen zu gut.

                      Eigentlich soll dieser AXAX Aufruf nur was machen, wenn er Daten von dem PHP Script erhält erhält.

                      Dummer weiße sendet er mir auf anderen Seiten auch Daten ohne was vom PHP Script erhalten zu haben was zu Fehlern führt.

                      Wie stelle ich es an das dieser AJAX Aufruf nur arbeitet, wenn er was von dem PHP Script gesendet bekommen hat?

                      Gruß
                      René

                      Kommentar


                      • #12
                        Kommentar von gestern BItte vergessen war ein Denkfehler von mir.

                        Gruß
                        René

                        Kommentar

                        Lädt...
                        X