Cross-Origin-Anfrage blockiert: Die Ursache verstehen
HTTP-Anfragen, die sich über verschiedene Domänen erstrecken, können einer Sicherheitsbeschränkung unterliegen, die als „Same Origin Policy“ bekannt ist (SOP), was den Fehler „Cross-Origin Request Blocked“ verursacht. Diese Richtlinie verhindert, dass Skripte ohne ausdrückliche Genehmigung Anfragen an andere Ursprünge, wie Server oder Webseiten, stellen.
Lösung für Go Handler
Um das Problem in Ihrem zu beheben Go-Handler müssen Sie Cross-Origin-Anfragen explizit zulassen, indem Sie den entsprechenden Access-Control-Allow-Origin festlegen header:
func handleMessageQueue(w http.ResponseWriter, r *http.Request) { // Allow cross-origin requests w.Header().Set("Access-Control-Allow-Origin", "*") ... }
Lösung für Firefox OS App
In Ihrem JavaScript-Code kann ein privilegierter XMLHttpRequest verwendet werden, um die SOP-Einschränkungen zu umgehen. Verwenden Sie dazu die folgende Syntax:
var xhr = new XMLHttpRequest({mozSystem: true});
Zusätzliche Manifestkonfiguration
Damit die privilegierte XMLHttpRequest in Firefox OS-Apps funktioniert, müssen Sie die entsprechenden hinzufügen Erlaubnis zu Ihrer Manifestdatei:
"permissions": { "systemXHR": {}, }
Grund dafür Fehler
Standardmäßig werden Browseranfragen an andere Ursprünge aus Sicherheitsgründen blockiert. Als Sie eine POST-Anfrage von Ihrer Firefox OS-App an Ihren Go-Handler gestellt haben, wurde die Antwort des Handlers aufgrund der SOP blockiert. Das Festlegen des Access-Control-Allow-Origin-Headers in Ihrem Go-Handler und die Verwendung des privilegierten XMLHttpRequest in Ihrer App ermöglichen ursprungsübergreifende Anforderungen und lösen so das Problem.
Das obige ist der detaillierte Inhalt vonWarum wird meine Cross-Origin-Anfrage blockiert und wie kann ich das Problem in Go und Firefox OS beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!