Admin ajax.php 400 bad request WordPress

Admin-ajax.php 400 (bad request) Wordpress

Rate this article

Share this article

Die Datei Admin-ajax.php ist in WordPress entscheidend, da sie die Kommunikation zwischen dem Server und dem Browser des Benutzers über AJAX (Asynchronous JavaScript and XML) erleichtert. Das Auftreten eines 400-Fehler-Fehlers bei fehlerhaften Anfragen im Zusammenhang mit admin-ajax.php kann jedoch für WordPress-Benutzer eine frustrierende Erfahrung darstellen. In diesem Artikel werden wir uns eingehender mit den Ursachen dieses Problems beschäftigen und wirksame Lösungswege erkunden.

Ursachen für den Admin-ajax.php 400 Fehler:

Plugin- oder Theme-Konflikte:

Konflikte zwischen Plugins oder Themes können häufig zu einem 400 Bad Request führen. Überprüfen Sie, ob das Problem weiterhin besteht, wenn Sie alle Plugins deaktivieren oder auf ein Standard-WordPress-Theme wechseln. Wenn der Fehler verschwindet, können Sie das konfliktierende Element identifizieren, indem Sie sie nacheinander wieder aktivieren.

Falsche AJAX-URL:

Die admin-ajax.php-Datei ist für die ordnungsgemäße Funktion auf eine korrekte AJAX-URL angewiesen. Falsch konfigurierte URLs, sei es durch eine Fehlkonfiguration in einem Theme oder einem benutzerdefinierten Code-Snippet, können den 400-Fehler auslösen. Stellen Sie sicher, dass Ihre AJAX-Anfragen auf die richtige URL zeigen.

Probleme mit der Serverkonfiguration:

Serverbezogene Probleme wie restriktive Servereinstellungen oder unzureichende Serverressourcen können zum 400-Fehler beitragen. Stellen Sie sicher, dass Ihr Server die Anforderungen von WordPress erfüllt, und überprüfen Sie die Serverprotokolle auf relevante Fehlermeldungen.

Skriptfehler oder Malware:

Schädliche Skripte oder Malware auf Ihrer WordPress-Website können die ordnungsgemäße Ausführung von admin-ajax.php beeinträchtigen und zu einem 400-Fehler führen. Scannen Sie Ihre Website regelmäßig auf Malware und halten Sie alle Skripte auf dem neuesten Stand, um Sicherheitslücken zu minimieren.

Behebung des Admin-ajax.php 400-Fehlers:

Aktualisieren Sie WordPress Core, Themes und Plugins:

Stellen Sie sicher, dass Ihr WordPress-Kern, Ihre Themes und Plugins auf dem neuesten Stand sind. Entwickler veröffentlichen häufig Updates, um Fehler zu beheben und die Kompatibilität zu verbessern, und die Verwendung veralteter Software könnte zum 400-Fehler beitragen.

Überprüfen Sie AJAX-Anfragen:

Überprüfen Sie Ihre AJAX-Anfragen, um sicherzustellen, dass sie korrekt formatiert sind und auf die admin-ajax.php-Datei verweisen. Stellen Sie sicher, dass die Nonce-Überprüfung ordnungsgemäß implementiert ist, um die Sicherheit zu erhöhen.

Serverprobleme untersuchen:

Untersuchen Sie die Serverprotokolle auf Hinweise auf serverbezogene Probleme. Konsultieren Sie Ihren Hosting-Anbieter, um sicherzustellen, dass Ihre Serverumgebung für WordPress optimiert ist.

Debugging und Fehlerprotokollierung:

Aktivieren Sie das Debugging in WordPress, um detaillierte Fehlermeldungen zu erhalten. Dies kann Ihnen helfen, die spezifische Ursache des 400-Fehlers zu identifizieren und den Fehlerbehebungsprozess zu optimieren. Vergessen Sie nicht, das Debugging zu deaktivieren, sobald das Problem behoben ist, um die Website-Leistung zu erhalten.

Die Behebung des Fehlers Admin-ajax.php 400 Bad Request in WordPress erfordert einen systematischen Ansatz zur Identifizierung und Behebung der zugrunde liegenden Probleme. Durch die Untersuchung potenzieller Ursachen wie Plugin-Konflikte, falsche AJAX-URLs und Serverprobleme sowie die Sicherstellung, dass Ihre WordPress-Installation auf dem neuesten Stand ist, können Sie dieses häufige Problem effektiv lösen und beheben. Wenn Sie während des Prozesses auf Schwierigkeiten stoßen,

Lesen WordPress admin-ajax 400 bad request Für mehr Informationen.

In letzter Zeit habe ich viel mit AJAX gearbeitet. Die Tutorials, die man im Netz findet, sind alle sehr ähnlich und relativ einfach umzusetzen. Aber ich bekomme immer eine Bad Request 400 auf meiner ajax-admin.php.

Wenn Ihre WordPress-Suche nicht funktioniert, würde ich Ihnen empfehlen read this article on WordPress custom Search.

Nach einer langen und intensiven Suche habe ich jetzt herausgefunden, dass es an der Zeit der Integration liegt.

Creating a WordPress site search is easily explained in this post, obwohl es keine Voraussetzung ist.

wordpress admin ajax 400 bad request

Fügen Sie eine Suche zu WordPress hinzu

Wenn ich den ‘init’-Action-Hook benutze, um das Skript und wp_localize_script zu initialisieren, funktioniert alles einwandfrei. Der Code selbst muss also korrekt sein.

Aber wenn ich z.B. den ‘wp_enqueue_scripts’-Action-Hook verwende, erhalte ich immer eine schlechte Anfrage.

Wenn Sie auf der Suche nach add a search results page, Verpassen Sie diesen Beitrag nicht.

Das Problem dabei ist:

Ich möchte die Funktionen in einer separaten PHP-Datei haben und sie nur laden, wenn sie auf einer bestimmten Seite benötigt werden. Dafür benötige ich zum Beispiel is_page(). Aber is_page() funktioniert frühestens, wenn ich die Funktion mit der Einbindung in den ‘parse_query’-Action-Hook verknüpfe:

Also funktioniert ‘init’ in meiner-page-test-functions.php nicht, vermutlich weil init vor parse_query aufgerufen wird.

Dieser Beitrag wird Ihnen helfen create a search bar on your WordPress site.

Wenn du darüber nachgedacht hast adding a Google search bar on your WordPress site, we’ve got you covered there as well.

Gibt es eine bewährte Methode, um dies so zu organisieren, dass es funktioniert? Oder wie kann ich den admin-ajax.php Bad Request Fehler beheben, wenn ich den ‘wp_enqeue_scripts’-Action-Hook verwende?

Schwer zu beschreiben, aber ich hoffe, es ist ziemlich verständlich.

Ich denke, das Einzige, was hier fehlt, ist, dass Sie add_action(‘wp_ajax_nopriv_ajaxlogin’,’ajax_login’); außerhalb von ajax_login_init verschieben müssen.

Dieser Code registriert Ihren Ajax-Handler, aber wenn Sie ihn nur bei wp_enqueue_scripts ausführen, ist es bereits zu spät, und die wp_ajax_nopriv_ Hooks werden bereits ausgeführt.

Wenn Sie möchten add a search widget on your WordPress page, here is a guide to help you.

Jetzt ist klar, dass Sie das JavaScript nur auf dieser bestimmten Seite laden möchten. Das bedeutet, dass Sie Ihre is_page() innerhalb von ajax_login_init() platzieren müssen. Ich habe den Code entsprechend aktualisiert.

Auch nachdem Sie alle Schritte genau befolgt haben, erhalten Sie manchmal nicht die gewünschten Ergebnisse. Zum Beispiel kann das Fehlen einer search box on the WordPress page für einige Gründe möglich sein.

Warum hat Ihre Lösung nicht funktioniert?

Die Überprüfung is_page() bedeutet, dass Ihre Funktionen-Datei nur auf dieser spezifischen Seite geladen wurde. ajax_login_init() wird aufgerufen und Ihre Skripte werden eingereiht. Soweit so gut.

Jetzt ruft Ihr Skript den Ajax-Aufruf auf. Wie in den Kommentaren erwähnt, sind Ajax-Aufrufe nicht bewusst, auf welcher Seite Sie sich befinden. Es gibt einen Grund, warum die Datei unter wp-admin/admin-ajax.php liegt. Es gibt kein WP_Query, und daher funktioniert is_page() während eines Ajax-Aufrufs nicht.

Wenn Sie der Meinung sind, dass Ihre Website und Ihr Publikum eine erweiterte Suche benötigen, können Sie diesen Beitrag lesen, wie ein advanced search form hilfreich ist, um relevante Suchergebnisse zu finden. Zusätzlich sind WordPress advanced search form custom fields ein anderes Thema und nicht für jede Website geeignet.

Da dies nicht funktioniert, wird sw18_page_specific_functions() in einem Ajax-Kontext nichts tun. Das bedeutet, dass Ihre Funktionen-Datei nicht geladen wird und Ihr Ajax-Handler nicht existiert.

Deshalb müssen Sie immer diese Funktionsdatei einfügen und diese is_page() Prüfung innerhalb von ajax_login_init() verschieben.

Sie können zu diesem Artikel skip, wenn das Problem noch nicht gelöst ist.

 

Fügen Sie eine Suche zu WordPress hinzu

Are you showing the right products, to the right shoppers, at the right time? Contact us to know more.
You may also like