Ajax-Erfolgsmeldung gibt HTML meiner Homepage zurück
Lesezeit: 2 Minuten
jamil
Verwenden von Ajax und WordPress (versuchen, es richtig zu machen). Es ist ziemlich neu für mich, aber ich hatte das schon früher mit mehr Flair. Scheinbar zufällig fingen Probleme an, also habe ich meinen Code auf die grundlegendste Ebene heruntergebrochen, und ich kann das nicht einmal zum Laufen bringen !!! Ich habe das Gefühl, dass ich nur frustriert bin und es mich zwingt, einen einfachen Fehler zu übersehen. Ist daran etwas falsch?
function update_post(){
echo json_encode(array("success" => "all systems go"), JSON_FORCE_OBJECT );
exit;
}
add_action( 'wp_ajax_post-save', 'update_post' );
Das Endergebnis ist, dass die Warnung funktioniert, was bedeutet, dass $.post erfolgreich ist (richtig?), aber die zurückgegebene Variable response ist die html-Quelle meiner Homepage…
Ich habe es herausgefunden…
Dies könnte einigen Neulingen wie mir helfen, die den gleichen Fehler machen, also beantworte ich meine eigene Frage 🙂
Es stellte sich heraus, dass ich nicht eingeloggt war. Die Antwort war jedoch seltsam und half, mich abzuschrecken und die gesamte Homepage zurückzugeben. Der Grund dafür ist, dass ich meine Funktionsdateien blockiert habe, die den Ajax-Responder wie folgt enthalten:
Ich hätte wissen sollen, dass ich mich einlogge (dachte, ich wäre es), aber so unerwartete Ergebnisse und es war Freitag 🙂
Beachten Sie auch alle, die darauf stoßen: Wenn Sie möchten, dass jemand Ajax macht, ohne angemeldet zu sein, verwenden Sie die No-Priviledge-Version von wp_ajax, wp_ajax_nopriv.
Ersteres erfordert keine Erlaubnis, dh eingeloggt zu sein, um Ajax-Anfragen zu stellen.
Ja, ich habe das gleiche Problem, ich habe diese Zeilen kommentiert. dann ist es jetzt ok, aber wie kann ich die Benutzer auf die Homepage umleiten? Meine Funktion ist die Funktion themeblvd_redirect_admin(){if (! current_user_can(‘edit_posts’)){wp_redirect(site_url()); Ausfahrt; } } add_action( ‘admin_init’, ‘themeblvd_redirect_admin’ );
– Naveenbos
18. Dezember 2013 um 12:13 Uhr
Ich hatte das gleiche Problem, und die Lösung bestand darin, DOING_AJAX in die Funktion einzufügen
Ich hatte ein add_action( 'init', 'login_redirect' ) und die hatte ein wp_redirect Funktion beim Login. Ich habe die hinzugefügt ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) Überprüfen Sie vor der Weiterleitung wie @lenasterg erwähnt und jetzt ist der Fehler weg.
13519300cookie-checkAjax-Erfolgsmeldung gibt HTML meiner Homepage zurückyes