Могу ли я отключить SOP (Same Origin Policy) в любом браузере для разработки? - PullRequest
32 голосов
/ 01 декабря 2008

Я хочу разработать JavaScript на моей машине с Windows. Знаете ли вы браузер, где я могу отключить Одинаковая политика происхождения , чтобы я мог разрабатывать локально? Firefox будет оптимальным.

Или, если вы знаете прокси, который я мог бы использовать для сайта SOAP / WSDL, это тоже было бы здорово.

Я пытаюсь работать с клиентом JavaSCript SOAP .

Ответы [ 10 ]

15 голосов
/ 05 мая 2010

ОБНОВЛЕНИЕ 6/2012: раньше работало на момент написания, но, очевидно, не более. К сожалению.

В Firefox (может применяться и к другим браузерам на основе Gecko) вы можете использовать следующий фрагмент JavaScript для разрешения междоменных вызовов:

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

Похоже, проблема создана в трекере проблем Chromium для достижения той же функциональности, поэтому вы можете попробовать запустить Chrome с аргументом --disable-web-security. Я не знаю, на каких именно сборках это работает, но по крайней мере WRT Tools от Nokia поставляется с установкой Chrome, которая фактически позволяет загружать контент с других сайтов.

6 голосов
/ 05 июля 2011

К сожалению, используя следующее:

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

было отключено в Firefox 5.

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

2 голосов
/ 30 августа 2011

Используя Chromium 13.07, вы можете запустить его с отключенной защитой:

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

Это на Ubuntu 11, но измените местоположение как вашу систему.

2 голосов
/ 03 декабря 2008

Создайте страницу на локальном сервере, которая вызывает удаленный сервер и отвечает так же, как удаленный сервер.

Например, javascript вызывает локальный сервер для JSON. Локальный сервер выполняет вызов удаленного сервера для этого JSON. Локальный сервер получает JSON от удаленного сервера и отправляет его в javascript.

1 голос
/ 03 декабря 2008

Все приведенные ответы являются хорошими, когда речь идет об использовании одной и той же политики происхождения в производстве.

Для разработки не существует удобного способа «отключить» эту проверку безопасности. Существуют обходные пути (см. Другие ответы) или хаки (вы можете использовать Greasemonkey, чтобы обернуть JavaScript и использовать их GM_xmlhttprequest в качестве временной меры), но нет способа «отключить» его, как вы описываете.

0 голосов
/ 31 мая 2019

Я запускаю эту команду на Mac, она работает на меня, когда я использую Google Chrome для запуска моего проекта.

open -a Google\ Chrome --args --disable-web-security --user-data-dir
0 голосов
/ 05 сентября 2016

В Chrome (и Chromium) 48 и выше вы должны добавить флаг --user-data-dir, например:

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

И это работает.

0 голосов
/ 25 ноября 2009

У меня нет никакого реального опыта с этим, но FireFox 3.5 разрешает межсайтовый JS в соответствии с W3C сквозным проектом совместного использования ресурсов .

См .: https://developer.mozilla.org/En/HTTP_access_control

0 голосов
/ 05 марта 2009

Вы также можете перенаправить локальный порт на удаленный сервер и порт через ssh.

0 голосов
/ 01 декабря 2008

Firefox будет оптимальным.

Если вы можете жить с Internet Explorer, вы можете использовать приложение .hta

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

(Это один из способов, которым средство автоматизации тестирования Selenium решает эту проблему)

...