Requête d'origine croisée bloquée : comprendre la cause
Les requêtes HTTP qui s'étendent sur différents domaines peuvent être confrontées à une restriction de sécurité connue sous le nom de politique de même origine (SOP), provoquant l'erreur "Cross-Origin Request Blocked". Cette politique empêche les scripts d'effectuer des requêtes vers d'autres origines, telles que des serveurs ou des pages Web, sans autorisation explicite.
Solution pour Go Handler
Pour résoudre le problème dans votre Go handler, vous devez autoriser explicitement les requêtes d'origine croisée en définissant le paramètre Access-Control-Allow-Origin approprié header :
func handleMessageQueue(w http.ResponseWriter, r *http.Request) { // Allow cross-origin requests w.Header().Set("Access-Control-Allow-Origin", "*") ... }
Solution pour l'application Firefox OS
Dans votre code JavaScript, une XMLHttpRequest privilégiée peut être utilisée pour contourner les restrictions SOP. Pour ce faire, utilisez la syntaxe suivante :
var xhr = new XMLHttpRequest({mozSystem: true});
Configuration du manifeste supplémentaire
Pour que le XMLHttpRequest privilégié fonctionne dans les applications Firefox OS, vous devez ajouter le autorisation à votre fichier manifeste :
"permissions": { "systemXHR": {}, }
Raison de la Erreur
Par défaut, les requêtes du navigateur vers d'autres origines sont bloquées par mesure de sécurité. Lorsque vous avez effectué une requête POST depuis votre application Firefox OS vers votre gestionnaire Go, la réponse du gestionnaire a été bloquée en raison de la SOP. La définition de l'en-tête Access-Control-Allow-Origin dans votre gestionnaire Go et l'utilisation du XMLHttpRequest privilégié dans votre application autorisent les requêtes d'origine croisée, résolvant ainsi le problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!