Domänenübergreifende Ajax-Anfrage durch Access-Control-Allow-Origin blockiert
Dieses Problem tritt auf, wenn eine Ajax-Anfrage versucht, auf eine Ressource zuzugreifen von einer anderen Domäne, was den Access-Control-Allow-Origin-Fehler auslöst. In diesem speziellen Fall wird die Ajax-Anfrage von einer Sencha Touch 2-Anwendung an einen Remote-PHP-Server gestellt.
Behebung des Problems
Um diesen Fehler zu beheben und zuzulassen Für domänenübergreifendes Ajax muss der Server so konfiguriert sein, dass er einen Antwortheader für Access-Control-Allow-Origin hinzufügt. Dieser Header gibt die zulässigen Domänen an, die Ajax-Anfragen stellen können.
In PHP kann dies erreicht werden, indem der Antwortheader wie folgt geändert wird:
header('Access-Control-Allow-Origin: *');
Zusätzliche Optionen
Apache-Konfiguration oder .htaccess :
Wenn Sie Zugriff auf die Apache-Konfigurationsdatei oder die .htaccess-Datei haben, können Sie auch den Header festlegen dort:
Header set Access-Control-Allow-Origin *
Achtung:
Die Aktivierung von domänenübergreifendem Ajax ermöglicht zwar mehr Flexibilität, deaktiviert aber auch den CORS-Schutz, wodurch Benutzer anfällig für Angriffe werden können. Verwenden Sie den Platzhalter (*) nur, wenn dies unbedingt erforderlich ist. Stattdessen wird empfohlen, bestimmte Domänen auf die Whitelist zu setzen, wie im bereitgestellten PHP-Codebeispiel gezeigt.
Das obige ist der detaillierte Inhalt vonWie aktiviert man domänenübergreifende Ajax-Anfragen und vermeidet Access-Control-Allow-Origin-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!