Ajax selbst interagiert tatsächlich mit Daten über das XMLHttpRequest-Objekt. Aus Sicherheitsgründen erlauben Browser jedoch keine domänenübergreifenden Vorgänge im JS-Code und geben Warnungen aus, sodass das Problem der domänenübergreifenden Ajax-Operationen auftritt.
Übersicht
Ajax-Cross-Domain ist ein häufiges Problem in der Front-End-Entwicklung. Dieser Artikel beschreibt den Fall, in dem der Google-Browser Chrome als Client und Tomcat verwendet werden als Webserverlösung verwendet.
Problemphänomen
Wenn ein domänenübergreifender Zugriff auftritt, meldet Ajax normalerweise einen Fehler ähnlich dem folgenden:
XMLHttpRequest kann http:// nicht laden:/ /192.168.2.12:8001/oss/api/version/check ist kein „Access-Control-Allow-Origin“-Header auf der angeforderten Ressource „http://localhost:8000“ vorhanden 🎜>
Lösung 1: Deaktivieren Sie die domänenübergreifenden Sicherheitseinstellungen des Browsers, nur zum Testen während der Entwicklung
Nehmen Sie den Chrome-Browser als Beispiel und klicken Sie mit der rechten Maustaste auf Chrome Verknüpfung und fügen Sie dann --disable-web-security nach dem Zielwert hinzu. Beachten Sie, dass vor -- ein Leerzeichen steht. Zum Beispiel: "C:Program Files (x86)GoogleChromeApplicationchrome.exe" --disable-web-securityNach dem Start werden Sie vom Chrome-Browser gefragt: „Sie verwenden eine nicht unterstützte Datei Befehlszeilen-Flag: --disable-web-security“ besagt, dass es nicht sicher ist und daher auf Tests beschränkt ist. Auf diese Weise können Sie direkt ohne domänenübergreifende Fehler testen!Lösung 2: Konfigurieren Sie den Webserver zur Unterstützung des domänenübergreifenden Zugriffs
Hier ist eine Lösung für die Verwendung von Tomcat als Webserver im WEB-INF des Java-Webprogramm Fügen Sie einfach die folgende Konfiguration zur Datei web.xml hinzu.<!--cors filter--> <filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Klicken Sie auf Laden basierend auf Ajax. Mehr Laden ohne Aktualisierung dieser Seite.
So lösen Sie Ajax. Ungültig auf Google Chrome
So verwenden Sie jQuery-Post, um Daten mit Sonderzeichen zu übergeben
Das obige ist der detaillierte Inhalt vonZwei Lösungen für domänenübergreifende Ajax-Probleme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!