web-dev-qa-db-fra.com

Puis-je désactiver SOP (Politique d'origine identique) sur n'importe quel navigateur pour le développement?

Je veux développer JavaScript sur ma machine Windows. Connaissez-vous un navigateur sur lequel je peux désactiver Politique de même origine afin que je puisse me développer localement? Firefox serait optimal.

Ou si vous connaissez un proxy que je pourrais utiliser pour un site SOAP/WSDL, ce serait également très bien.

J'essaie de travailler avec le JavaSCript SOAP Client .

32
Thomaschaaf

UPDATE 6/2012: Cela fonctionnait au moment de l'écriture, mais évidemment plus. Pardon.

Dans Firefox (peut également s'appliquer à d'autres navigateurs basés sur Gecko), vous pouvez utiliser l'extrait de code JavaScript suivant pour autoriser les appels entre domaines:

if (navigator.userAgent.indexOf("Firefox") != -1) {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    } 
    catch (e) {
        alert("Permission UniversalBrowserRead denied -- not running Mozilla?");
    }
}

Il semble qu'il y ait un problème créé dans le suivi des problèmes de Chromium pour obtenir la même fonctionnalité. Vous pouvez donc essayer de démarrer Chrome avec l'argument --disable-web-security. Je ne sais pas sur quoi repose exactement cette version, mais au moins le logiciel WRT Tools de Nokia est livré avec une installation de Chrome qui permet en fait de charger du contenu à partir d’autres sites.

15
miek

Malheureusement, en utilisant ce qui suit:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

a été désactivé dans Firefox 5.

https://bugzilla.mozilla.org/show_bug.cgi?id=667312

6
user828878

En utilisant Chromium 13.07, vous pouvez le démarrer avec la sécurité désactivée:

/ usr/bin/chrome-browser --disable-web-security

C'est sur Ubuntu 11, mais changez l'emplacement en tant que votre système.

2
Chris Lee

Créez une page sur votre serveur local qui appelle le serveur distant et répondez de la même manière que le serveur distant.

Exemple, javascript appelle le serveur local pour un JSON. Le serveur local appelle le serveur distant pour ce JSON. Le serveur local reçoit le JSON du serveur distant et l'envoie au javascript.

2
dsimard

Toutes les réponses données sont bonnes lorsqu'il s'agit de contourner la même politique Origin en production.

Pour le développement, il n’existe aucun moyen pratique de "désactiver" cette vérification de sécurité. Il existe des solutions de contournement (voir d'autres réponses) ou des hacks (vous pouvez utiliser Greasemonkey pour résumer le JavaScript et utiliser leur GM_xmlhttprequest comme mesure temporaire), mais aucun moyen de le "désactiver" comme vous le décrivez.

1
singpolyma

Dans Chrome (et Chrome) 48 et supérieur, vous devez ajouter le drapeau --user-data-dir comme ceci:

chromium-browser --disable-web-security --user-data-dir

Et il fonctionne.

0
Johann Echavarria

Je n'ai pas vraiment d'expérience avec cela, mais FireFox 3.5 permet l'utilisation de JS intersites conformément au brouillon Projet de partage des ressources d'origine multiple du W3C .

Voir: https://developer.mozilla.org/En/HTTP_access_control

0
wilth

Firefox serait optimal.

Si vous pouvez vivre avec Internet Explorer, vous pourrez peut-être utiliser une application .hta

http://msdn.Microsoft.com/en-us/library/ms536496(VS.85).aspx

(C’est l’un des moyens utilisés par l’automatisation des tests Selenium pour résoudre ce problème)

0