WordPress „admin-ajax.php“ 404-Fehler

Lesezeit: 3 Minuten

Ich habe eine Website für ein kleines Bed and Breakfast erstellt, aber ich habe ein Problem gefunden, das ich nicht verstehe, wenn es von WordPress oder dem Server abhängt.

Diese Website verwendet eine Pop-up-Animation, um die Zimmerbeschreibung anzuzeigen. Das Problem ist, dass dieses Popup seit letzter Woche nicht mehr funktioniert. Von der Browserkonsole aus ist mir aufgefallen, dass das Ganze von einem 404-Fehler abhängt (admin-ajax.php not found). Hier das Detail:

jquery.js?ver=1.12.4:4 POST http://lettoacastello.net/wp-admin/admin-ajax.php 404 (Not Found)
send @ jquery.js?ver=1.12.4:4
ajax @ jquery.js?ver=1.12.4:4
(anonymous) @ script.js?ver=4.9.1:207
dispatch @ jquery.js?ver=1.12.4:3
r.handle @ jquery.js?ver=1.12.4:3

Um das Problem vorübergehend lösen zu können, habe ich Einfach WordPress neu installieren vom Armaturenbrett. Das Problem tritt einen ganzen Tag lang nicht mehr auf, alles funktioniert einwandfrei! Aber am nächsten Tag beginnt alles von vorne und das Problem tritt erneut auf (dieser Zyklus geht jeden Tag so weiter). Aus diesem Grund verstehe ich nicht, ob es sich um ein Serverproblem handelt oder nicht.

Eine letzte sehr wichtige Sache. Das Popup hat keine Probleme, wenn ich im WordPress-Admin-Panel angemeldet bin (der Browser erkennt die Datei „admin-ajax.php“).

Der Code wurde nicht von mir geschrieben (der Entwickler sagt, dass das Problem nicht von ihm abhängt).

Ich glaube jedoch, dass dies der Teil des Codes ist, der das Raum-Popup steuert:

jQuery(document).ready(function($){

$('.special-room button.btn, .rooms-sec button.btn').live('click', function(e){

    e.preventDefault();

    $('#room.modal').html('');

    var thislink = this;

    var page_id = $(this).data('id');



    $.ajax({

        url: ajaxurl,

        method: 'POST',

        data: 'action=_sh_ajax_callback&subaction=sh_room_detail&post_id='+page_id,

        success: function(res){

            $('#room.modal').html(res);

        }

    });



});

Bitte, kann ich Sie um Hilfe bitten? Leider bin ich nicht sehr technisch versiert.

Vielen Dank

Das entnehme ich deinem Kommentar:

Danke @NicoHaase und @LawrenceCherone! Nachdem ich ein wenig an der Datei admin-ajax.php herumgebastelt hatte, fand ich die Zeichenfolge, die das Problem verursacht. Wenn ich es entferne, funktioniert alles bis zum nächsten Tag, wenn der String automatisch neu erstellt wird.

Das Problem ist, dass Ihre Website gehackt wurde und ein Skript/eine Software diesen Code in Ihre Website einfügt.

Wenn alles funktioniert, wenn Sie eingeloggt sind, ist dies kein direktes Problem Ihres Codes, sondern ein Sicherheitsproblem: Sie dürfen natürlich keine Sachen aufrufen /wp-admin/ (das ist der Ordner für Backend-Aktionen), wenn Sie nicht angemeldet sind, aber Ihr Code verarbeitet das nicht sehr gut.

Wenn Sie dies ohne Anmeldung ausführen müssen, muss etwas mehr Arbeit im PHP-Code geleistet werden. Aber zu helfen ist schwierig, wenn wir diesen Code nicht sehen können

  • Sie würden denken, aber wp-admin/admin-ajax.php ist sowohl für Front-End- als auch für Back-End-Ajax-Aufrufe :/ obwohl Sie dazu bestimmt sind if ( is_admin() ) {//back} else {//front}codex.wordpress.org/AJAX_in_Plugins

    – Lawrence Cherone

    9. Dezember 2017 um 8:48 Uhr


  • Wenn es nützlich sein könnte, teile ich mit Ihnen meine “admin-ajax.php”-Datei. dropbox.com/s/ftez6ctvnxri84q/admin-ajax.php?dl=0 Irgendein Hinweis?

    – Meng

    9. Dezember 2017 um 9:10 Uhr


  • Danke, @LawrenceCherone – das war mir nicht bewusst … aber diese Seite gibt den Hinweis, dass das Plugin, das @Meng verwendet, sich für den Hook registrieren sollte wp_ajax_nopriv_sh_ajax_callbackund hat dies wahrscheinlich nur für getan wp_ajax_sh_ajax_callback

    – Nico Haase

    9. Dezember 2017 um 12:49 Uhr

  • Danke @NicoHaase und @LawrenceCherone! Nachdem ich ein wenig an der Datei admin-ajax.php herumgebastelt hatte, fand ich die Zeichenfolge, die das Problem verursacht. Wenn ich es entferne, funktioniert alles bis zum nächsten Tag, wenn der String automatisch neu erstellt wird. Wenn Sie die Datei sehen, die ich über Dropbox mit Ihnen geteilt habe, werden Sie sehen, dass die erste Zeichenfolge sehr seltsam ist (

    – Meng

    10. Dezember 2017 um 8:26 Uhr


Benutzer-Avatar
Jimmy Anthony Bazán Solis

Kommentardatei: wp-admin/.htaccess –> #Order Allow,Deny UND #Deny from all Beispiel:

<FilesMatch ".*\.(phtml|php)$">
#Order Allow,Deny
#Deny from all
</FilesMatch>
<FilesMatch "(index).php$">
#Order Allow,Deny
#Allow from all
</FilesMatch>

Grüße aus Peru 😀

1350370cookie-checkWordPress „admin-ajax.php“ 404-Fehler

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy