Могу ли я отключить SOP (Same Origin Policy) в любом браузере для разработки?

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

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

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


person Thomaschaaf    schedule 01.12.2008    source источник
comment
У меня было точно такое же желание, когда я разрабатывал приложение MySpace.   -  person Daniel Lucraft    schedule 01.12.2008


Ответы (10)


ОБНОВЛЕНИЕ 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 от Nokia поставляется с установкой Chrome, которая фактически позволяет загружать контент с других сайтов.

person miek    schedule 05.05.2010
comment
Это действительно способ проверить ваш код. Всплывает предупреждение, а затем просто работает. Большое спасибо! - person Shermozle; 17.06.2010
comment
Для справки, это почти эквивалентная строка параметра запуска Chrome/Chromium для разработки: --allow-file-access-from-files --disable-web-security --enable-file-cookies --disk-cache- размер=1 --media-cache-size=1 - person miek; 11.11.2010

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

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

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

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

person user828878    schedule 05.07.2011
comment
Я хочу указать на очевидную вещь здесь. Если Firefox 5 не позволяет мне это сделать, а мне это действительно нужно, я буду использовать вместо него Firefox 4. Разве это не конец света. - person m3nda; 16.02.2015

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

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

person dsimard    schedule 03.12.2008

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

/usr/bin/chromium-browser --отключить-веб-безопасность

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

person Chris Lee    schedule 30.08.2011
comment
/opt/google/chrome/google-chrome --disable-web-security Это сработало для меня в Linux Mint 11.04, Google Chrome 14.0.8 - person so_mv; 25.10.2011

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

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

person singpolyma    schedule 03.12.2008

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

open -a Google\ Chrome --args --disable-web-security --user-data-dir
person Miftah Mizwar    schedule 31.05.2019

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

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

person wilth    schedule 25.11.2009
comment
но веб-серверы должны включить CORS, отправив заголовок ответа HTTP: Access-Control-Allow-Origin: * например - person baptx; 05.02.2013

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

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

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

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

person The Archetypal Paul    schedule 01.12.2008

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

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

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

person Johann Echavarria    schedule 05.09.2016

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

person Community    schedule 05.03.2009