Maison >développement back-end >Golang >Pourquoi mon application Firefox OS obtient-elle une erreur « Demande d'origine croisée bloquée » même avec CORS activé ?

Pourquoi mon application Firefox OS obtient-elle une erreur « Demande d'origine croisée bloquée » même avec CORS activé ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 00:13:25947parcourir

Why Does My Firefox OS App Get a

Demande d'origine croisée bloquée en raison d'une restriction XMLHttpRequest

Question :

La tentative d'accès à un service RESTful POST à ​​partir d'une application Firefox OS entraîne un Erreur « Cross-Origin Request Blocked », même si le serveur principal a défini « Access-Control-Allow-Origin : *" dans ses en-têtes de réponse HTTP.

Solution :

Le problème réside dans le code JavaScript créant la requête XMLHttpRequest :

var request = new XMLHttpRequest();

Pour effectuer des requêtes POST intersites dans une application Firefox OS, l'objet XMLHttpRequest doit être créé en mode privilégié, à l'aide de mozSystem :

var request = new XMLHttpRequest({mozSystem: true});

Détails de mise en œuvre :

  1. mozSystem : Définir mozSystem sur true permet les connexions entre sites sans avoir besoin de configuration côté serveur CORS. Cependant, cela nécessite de définir mozAnon : true, ce qui empêche l'envoi de cookies ou d'autres informations d'identification utilisateur. Cette fonctionnalité n'est disponible que pour les applications privilégiées (examinées) et non pour les pages Web arbitraires.
  2. Mise à jour du manifeste : Pour accorder à votre application l'autorisation nécessaire, incluez la ligne suivante dans les « autorisations » de votre manifeste. section :
"permissions": {
       "systemXHR" : {},
}

En implémentant ces modifications, votre application Firefox OS pourra envoyer des requêtes POST d'origine croisée à votre Go service.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn