[AJAX] Scheinbar feherhaftes Verhalten (responseText = undefined)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [AJAX] Scheinbar feherhaftes Verhalten (responseText = undefined)

    Moin,

    ich arbeite an einem Projekt und werkele aktuell im ACP rum. Ich möchte die technische Basis schaffen das beim anlegen eines neuen Artikels (Blog Posting) ein Wert gesetzt wird wenn ein bestimmtes Feld verlassen wird. Bei diesem Wert handelt es sich um einen Alias (???) vom Titel des neuen Artikels welcher später im "Permalink" auf den Eintrag genutzt werden soll.

    Dazu habe ich mir mit ein wenig spicken die folgenden zwei nicht wirklich spektakulären Funktionen geschrieben ...

    Auszug aus meiner ajax.js

    Quellcode

    1. var ajax = null;
    2. function AJAX_REQUEST(url)
    3. {
    4. if (window.XMLHttpRequest)
    5. {
    6. ajax = new XMLHttpRequest();
    7. }
    8. else if (window.ActiveXObject)
    9. {
    10. ajax = new ActiveXObject("Microsoft.XMLHTTP");
    11. }
    12. if (ajax != null)
    13. {
    14. ajax.open("GET", url, true);
    15. ajax.onreadystatechange = AJAX_HANDLE_RESPONSE;
    16. ajax.send(null);
    17. }
    18. }
    19. function AJAX_HANDLE_RESPONSE()
    20. {
    21. if( ajax.readyState == 4 && ajax.status == 200 && ajax.responseText != 'undefined' )
    22. {
    23. return ajax.responseText;
    24. }
    25. else
    26. {
    27. return false;
    28. }
    29. if( ajax.readyState == 4 && ajax.status != 200 )
    30. {
    31. return false;
    32. }
    33. }
    Alles anzeigen


    So soviel dazu ...

    Natürlich fehlen mir jetzt noch zwei Funktionen ... eine die beim Aufruf der / die (:P) / das / den Alias / Slug / was auch immer setzt , macht was sichtbar und ändert einen Text auf der Seite die andere dient zum ändern des aktuell gesetzten Aliases / Slugs / was auch immer...

    set_slug(slug, group) - Löst Ajax Request aus -> Slug / Alias setzen und ein bissel mehr
    edit_slug(group) - Löst Ajax Request aus -> Slug / Alias ändern und ein bissel mehr

    Nun gut, das mag alles kein Problem sein, habe ich auch gedacht und das ganze lief sogar soweit ich mich erinnern kann weil es so lange her ist gestern bzw. vorgestern Abend noch!
    Nun aber erstmal die beiden anderen Funktionen die aber nicht komplett sind da der restliche Code irgendwie verloren gegangen ist ...

    Quellcode

    1. function set_slug(slug, group)
    2. {
    3. if( slug != '' )
    4. {
    5. alert(AJAX_REQUEST('./ajax.php?action=set-current-slug&group='+group+'&slug='+slug));
    6. document.getElementById('permalink').style.display = '';
    7. }
    8. else
    9. {
    10. return false;
    11. }
    12. }
    Alles anzeigen


    Quellcode

    1. function edit_slug(group)
    2. {
    3. slug_new = prompt('Slug (Url Name) bearbeiten:', AJAX_REQUEST('./ajax.php?action=get-current-slug&group='+group));
    4. if( slug_new != '' && slug_new != AJAX_REQUEST('./ajax.php?action=get-current-slug&group='+group) )
    5. {
    6. AJAX_REQUEST('./ajax.php?action=set-current-slug&group='+group+'&slug='+slug_new);
    7. document.getElementById('slug-display').innerHTML = slug_new;
    8. return true;
    9. }
    10. else
    11. {
    12. return false;
    13. }
    14. }
    Alles anzeigen


    Nun wie bereits geschrieben der Code ist so ein wenig durcheinander, es fehlt wie gesagt was ... Fakt ist aus irgend einem Grund wird hier als Antwort auf meine Anfrage mal ein freundliches undefined zurück gegeben oder halt das was ich gerne immer zurück gegeben bekommen würde nämlich bei get-current-slug den aktuellen Alias oder bei set-current-slug den neuen Alias oder so ... ;)

    Ich hoffe ich hab hier irgendwo eine Frage versteckt ... Aber da ich ja was von euch möchte stelle ich diese nun mal so das sie jeder sieht!

    Wo könnte der Fehler liegen? (Rufe ich die, gewünschter Request wird übrigens ausgeführt aufgerufene URL auf sprich ajax.set|get-current-slug&group=&slug= bekomme ich das gewünschte Ergebniss)

    Bevor noch jemand fragt, ein Framework wollte ich nicht nutzen brauche Ajax nur für diese eine Sache ...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Torsten ()

  • Hi,

    Torsten schrieb:

    Wo könnte der Fehler liegen? (Rufe ich die, gewünschter Request wird übrigens ausgeführt aufgerufene URL auf sprich ajax.set|get-current-slug&group=&slug= bekomme ich das gewünschte Ergebniss)


    Wie beobachtest du, dass der Request erfolgreich ausgeführt wird und dass dir die Antwort gefällt? Firebug?
    Also können wir uns darauf beschränken, dass der Fehler in der Callback Methode liegt?

    Hast du deinen Code zufällig mal mit dem Wiki AutoSave Artikel verglichen?
    [coderwiki]http://www.coder-wiki.de/HowTos/Ajax-AutoSave[/coderwiki]
  • Nein hab das nicht geprüft, aber mit anderen drüber gesprochen die Ursache des Problemes ist wohl das die gewünschte Antwort normal aus
    AJAX_HANDLE_RESPONSE kommt und ich die Antwort ja aus AJAX_REQUEST haben wollte ...

    Nutze jetzt JQUERY aber falls dir was einfällt kannst es mir ja erzählen ...

    Ach zu deiner Frage, der Aufruf von AJAX_REQUEST bringt ja kein Ergebnis, wenn ich aber in AJAX_HANDLE_RESPONSE ein alert() setze erhalte ich das gewünschte Ergebnis in dieser alert() Box ...