Il existe une extension Firefox qui ajoute les en-têtes CORS à toute réponse HTTP et qui fonctionne avec la dernière version de Firefox ( version 36.0.1 ) libéré 5 mars 2015 . Je l'ai testé et il fonctionne à la fois sur Windows 7 et Mavericks. Je vais vous guider à travers les étapes pour le faire fonctionner.
1) Obtenir l'extension
Vous pouvez soit télécharger le xpi à partir de aquí (construit par l'auteur) ou de aquí (miroir, peut ne pas être mis à jour).
Ou téléchargez le fichiers depuis GitHub. Maintenant, il est aussi sur Firefox Marketplace : Télécharger ici . Dans ce cas, l'addon est installé après que vous ayez cliqué sur installer et vous pouvez passer à l'étape 4.
Si vous avez téléchargé le xpi, vous pouvez passer à l'étape 3. Si vous avez téléchargé le zip depuis GitHub, passez à l'étape 2.
2) Construction de l'xpi
Vous devez extraire le zip, entrer dans le dossier "cors-everywhere-firefox-addon-master", sélectionner tous les éléments et les compresser. Ensuite, renommez le zip créé en *.xpi
Note : Si vous utilisez l'interface OS X, cela peut créer des fichiers cachés, il est donc préférable d'utiliser la ligne de commande.
3) Installation de l'xpi
Vous pouvez simplement faire glisser et déposer le xpi dans firefox, ou aller à : "about:addons", cliquez sur la roue dentée dans le coin supérieur droit et sélectionnez "install add on from file", puis sélectionnez votre fichier .xpi. Maintenant, redémarrez firefox.
4) Faire fonctionner le système
Maintenant, l'extension ne fonctionnera pas par défaut. Vous devez faire glisser l'icône de l'extension vers la barre d'extension, mais ne vous inquiétez pas. Il y a des images !
- Cliquez sur le menu Firefox
- Cliquez sur Personnaliser
- Faites glisser CorsE vers le bar
- Maintenant, cliquez sur l'icône, quand elle est verte, les en-têtes CORS seront ajoutés à toute réponse HTTP.
5) Tester si cela fonctionne
jQuery
$.get( "http://example.com/", function( data ) {
console.log (data);
});
JavaScript
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
console.log(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://example.com/");
xmlhttp.send();
6) Considérations finales
Notez que https vers http n'est pas autorisé .
Il y a peut-être un moyen de le contourner, mais cela dépasse le cadre de la question.
4 votes
Ce serait une chose intéressante pour les développeurs. Puisque la même politique d'origine est conçue pour la sécurité des utilisateurs et non des développeurs, il devrait être possible d'autoriser les scripts de l'application donné site pour franchir les restrictions. Mais les développeurs sont aussi des personnes, et vous pourriez perdre vos informations personnelles.
1 votes
Je crois que ce n'est pas possible pour le moment, voici le rapport de bogue correspondant dans Firefox Bugzilla : bugzilla.mozilla.org/show_bug.cgi?id=1039678
0 votes
La seule bonne solution est d'injecter les en-têtes par un plugin basé sur les domaines : stackoverflow.com/a/44093160/956397 Tout le reste n'est qu'insécurité...