Ich benutze diesen jQuery-Aufruf, um eine .php-Datei zu laden, die sich auf demselben Server befindet.
Mit der Javascript-Konsole von Chrome wurde jedoch die Meldung "404 nicht gefunden" in der PHP-Datei gefunden, die ich gerade laden möchte. Ich kann die Datei zwar direkt laden, indem ich direkt in der Konsole auf die Datei klicke.
Außerdem kann ich die URL der Datei kopieren, direkt von der JavaScript-Konsole, wo sie 404 meldet (nicht gefunden), eine neue Registerkarte öffnen, sie in die Adressleiste einfügen und das Skript ohne Probleme drücken.
Ist das etwas Spezifisches für die jQuery get-Methode? Was könnte dazu führen, dass die Seite in der get-Methode 404 wird, aber beim Aufruf direkt ausgeführt wird?
%Vor%
Hier ist die Quelldatei colorReset.php, die von get ...
aufgerufen wird %Vor% Wie in einer anderen Antwort beschrieben loading wp-blog-header.php
bootstrapt den gesamten Prozess zur Verarbeitung von WordPress-Anfragen. Da es sich bei Ihrem Skript nicht um einen WordPress-Beitrag handelt, setzt dieser Prozess den 404-Header so, dass er den gesuchten Inhalt nicht finden kann.
Da es so aussieht, als ob Sie nur auf die WordPress-Benutzerfunktionen zugreifen möchten, ist es besser, wenn Sie wp-load.php
mit einbeziehen, was Ihnen erlaubt, diese Funktionen aufzurufen, ohne den Anfrage-Parser aufzurufen.
Vielleicht möchten Sie sich die Kopfzeilen der Antwort ansehen, die Sie erhalten. Es ist nicht ungewöhnlich, ein Dokument mit einer 404-Antwort zu senden, die ein Browser möglicherweise anzeigt. Aber es ist immer noch eine 404-Antwort, und JQuery wird es wie einen Fehler behandeln (was nach dem HTTP-Standard tatsächlich der Fall ist).
Das HTTP 404 kommt von der Kopfzeile der Antwort - es kann einen Antwortinhalt geben (normalerweise eine Meldung "Hoppla, wir können es nicht finden"), aber es wird von einigen Browsern ignoriert, wenn es klein ist (IE hat eigene Nachrichten für kleine 404s).
Ich nehme an, dass der Server den 404-HTTP-Status-Header zu colorReset.php
hinzufügt - das ist ein PHP / welcher Server auch immer verwendet wird, nicht jQuery.
jQuerys $.get
-Methode löst nur die success
-Funktion aus, wenn Sie einen HTTP 200-Status vom Server zurückbekommen, andernfalls wird die error
-Funktion ausgelöst - so können Sie Ihren farbigen Hex-Code mit dem Status 404 erhalten.
Aktualisieren
Ich denke, hier ist etwas Verwirrung.
Wenn Sie in Ihrem Browser eine 404-Seite aufrufen, wird nur der Inhalt der Seite geladen.
Wenn Sie eine 404-Seite über $.get
laden, wird die zugewiesene error
-Methode ausgelöst, aber der Konstruktor auf $.get
lässt nur die Methode success
zu.
Dein jQuery würde funktionieren, wenn du es tust:
%Vor% Allerdings würde ich mir ansehen, warum Ihr Server zuerst eine 404 zurückgibt - colorReset.php
könnte einen Fehler enthalten oder die Serverkonfiguration könnte falsch sein.
Da laut
Diese Seite sagt Ссылка , dass:
Eine Karte mit numerischen HTTP-Codes und Funktionen, die aufgerufen werden, wenn die Antwort den entsprechenden Code hat. Beispielsweise wird Folgendes angezeigt, wenn der Antwortstatus ein 404 lautet:
%Vor%Wenn die Anfrage erfolgreich ist, nehmen die Statuscode-Funktionen die gleichen Parameter wie der Erfolgs-Callback an; Wenn es zu einem Fehler kommt, nehmen sie die gleichen Parameter wie der Fehler Callback.
Tags und Links jquery php apache http-status-code-404