Meine Frage bezieht sich NICHT darauf, wie die Access-Control-Allow-Origin-Probleme gelöst werden. Diese Fehler treten manchmal auf, wenn Anfragen ausgeführt werden, und manchmal sind die URLs veraltet. Aber ich möchte verschiedene Nachrichten für den Benutzer abhängig von den verschiedenen Fehlern drucken.
Momentan habe ich den folgenden Code:
%Vor%Wenn Sie sich die Konsole ansehen, können Sie leicht erkennen, ob die Datei tatsächlich fehlte oder ob es sich um ein Access-Control-Problem handelte. Aber ich möchte zwei verschiedene Nachrichten an den Benutzer ausdrucken, die genau sagen, was das Problem war. Betrachtet man die Variablen im Fehlerfall: Funktion (Anfrage, Status, Nachricht) ändern sie sich nicht, beide Fälle führen zu einem Fehler 404. Gibt es noch etwas anderes, um das Problem zu lösen?
Vielen Dank im Voraus für die Aufmerksamkeit.
Ihre Browser-Konsole zeigt Ihnen
XMLHttpRequest kann http://www.google.com/ nicht laden. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin 'http://mysite.com' ist daher nicht erlaubt.
Sie können jedoch nicht mit JavaScript allein auf diese Informationen zugreifen. Wenn ein Browser eine CORS-Verletzung feststellt, wird die Header-Information als eine Angelegenheit der verwerfen Protokoll.
Eine Lösung, die funktioniert, besteht darin, die Antwortheader mit serverseitigem Code zu überprüfen und die Ergebnisse an Ihre Clientseite zurückzugeben. Zum Beispiel, wenn die Ajax-Anfrage fehlschlägt, könnten Sie dieses Skript aufrufen (nennen wir es cors.php
) und sicher wissen, ob es "Access-Control-Allow-Origin" enthält oder nicht.
Beispiel:
cors.php? url = http: //ip.jsontest.com
cors.php? url = http: //www.google.com
gibt
zurückZugriffssteuerung-Erlauben-Ursprung: *
Keine
So können Sie in Ihrem JavaScript-Code Folgendes tun:
%Vor%Passen Sie dieses PHP-Skript für Ihre eigenen Bedürfnisse an:
%Vor%Sie sollten den Antwortheader vom Anforderungsobjekt lesen können:
var acao = request.getResponseHeader ('Zugriffssteuerung-Zulassen-Ursprung');
gibt dann den entsprechenden Fehler basierend darauf aus, ob der Header vorhanden ist und ob Ihre URL in dem Wert enthalten ist.
Tags und Links javascript jquery ajax