web-dev-qa-db-fra.com

Comment activer CORS sur Firefox?

Quelqu'un peut-il me dire s'il vous plaît comment j'autorise CORS sur firefox? Je l'ai facilement géré sur Chrome et IE, mais j'échoue totalement avec Firefox. J'ai édité ce qui suit à propos de: entrée de configuration 

security.fileuri.strict_Origin_policy = false

Cette tentative a été postée plusieurs fois ici et est racontée sur d'autres sites également, mais elle n'a aucun effet. J'ai lu le guide de Mozilla sur les politiques de même origine:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

mais cela explique simplement la SCRO et les sujets connexes. Une solution de contournement pour l'activer sur FF n'est pas répertoriée. 

J'apprécierais vraiment une solution définitive. 

ps: FORCECORS ne fonctionne pas non plus ...

28
Ahab

Ne rien faire au navigateur. CORS est supporté par défaut sur tous les navigateurs modernes (et depuis Firefox 3.5).

Le serveur auquel JavaScript accède doit donner au site hébergeant le document HTML dans lequel le JS exécute une autorisation via les en-têtes de réponse HTTP du CORS.


security.fileuri.strict_Origin_policy est utilisé pour donner à JS dans les documents HTML locaux l'accès à l'intégralité de votre disque dur. Ne le définissez pas sur false car cela vous rend vulnérable aux attaques de documents HTML téléchargés (y compris les pièces jointes à des courriels).

18
Quentin

Ce n'est possible que lorsque le serveur envoie cet en-tête: Access-Control-Allow-Origin: *

Si ceci est votre code, vous pouvez le configurer comme ceci (PHP):

header('Access-Control-Allow-Origin: *');
9
Abbas

Ce problème me préoccupait depuis longtemps (CORS ne fonctionne pas en FF, mais fonctionne en Chrome et autres). Aucun conseil ne pourrait aider. Enfin, j’ai trouvé que mon sous-domaine dev local (comme sub.example.dev) n’était pas explicitement mentionné dans / etc/hosts, donc FF n’est tout simplement pas capable de le trouver et affiche un message d’erreur confus 'Aborted. .. 'in dev tools panel. 

Mettre le sous-domaine exact dans mon / etc/hosts local a résolu le problème. / etc/hosts est simplement un fichier texte dans des systèmes Unix, vous pouvez donc l'ouvrir sous l'utilisateur root et placer votre sous-domaine devant l'adresse IP '127.0.0.1'.

2
Vasiliy

Cet add-on Firefox peut fonctionner pour vous: 

https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/

Il peut activer et désactiver la fonction CORS à des fins de développement.

2
saudes

Très souvent, vous n'avez aucune option pour configurer le serveur d'envoi. C'est pourquoi j'ai changé l'appel XMLHttpRequest.open de mon javascript en un fichier local get-file.php contenant le code suivant:

<?php
  $file = file($_GET['url']);
  echo implode('', $file);
?>

javascript fait ceci:

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // File content is now in the this.responseText
  }
};
xhttp.open("GET", "get-file.php?url=http://site/file", true);
xhttp.send();

Dans mon cas, cela résout parfaitement la restriction/situation. Pas besoin de pirater Firefox ou les serveurs. Il suffit de charger votre fichier javascript/html avec ce petit fichier php sur le serveur et vous avez terminé.

0
Tickseeker