2008-12-01 14 views
31

Chcę opracować JavaScript na moim komputerze z systemem Windows. Czy znasz przeglądarkę, w której mogę wyłączyć lokalnie? Ta sama polityka Origin, aby móc rozwijać się lokalnie? Firefox byłby optymalny.Czy mogę wyłączyć SOP (zasady Same Origin) w dowolnej przeglądarce w celu programowania?

Lub jeśli znasz serwer proxy, który mógłbym użyć na stronie SOAP/WSDL, byłby również świetny.

Próbuję pracować z JavaSCript SOAP Client.

+0

Miałem dokładnie to samo pragnienie, gdy pracowałem nad aplikacją MySpace. –

Odpowiedz

2

Wykonaj stronę na lokalnym serwerze, która łączy się z serwerem zdalnym i odpowiada tak samo, jak serwer zdalny.

Przykład, javascript wywołuje lokalny serwer dla JSON. Serwer lokalny nawiązuje połączenie z serwerem zdalnym dla tego JSON. Lokalny serwer odbiera JSON ze zdalnego serwera i wysyła go do javascript.

1

Wszystkie podane odpowiedzi są dobre, jeśli chodzi o obejście zasady produkcji w tym samym źródle pochodzenia.

Do opracowania nie istnieje wygodny sposób "wyłączenia" tej kontroli bezpieczeństwa. Istnieją obejścia (zobacz inne odpowiedzi) lub hacki (możesz użyć Greasemonkey, aby zamknąć JavaScript i użyć ich GM_xmlhttprequest jako tymczasowej miary), ale nie ma sposobu, aby "wyłączyć", jak opisujesz.

+1

+1 dla GM_xmlhttprequest – baptx

-1

Możesz także przekierować lokalny port do zdalnego serwera i portu przez ssh.

15

AKTUALIZACJA 6/2012: To używane do pracy w czasie pisania, ale oczywiście nie ma. Przepraszam.

W Firefoksie (można zastosować do innych przeglądarek opartych na Gecko również) można użyć poniższy fragment kodu JavaScript w celu umożliwienia połączeń cross-domain:

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

To wygląda tam an issue stworzony w kwestii Chromium tracker dla osiągnięcia tej samej funkcjonalności, więc możesz spróbować uruchomić Chrome z argumentem --disable-web-security. Nie wiem, która dokładnie to działa, ale przynajmniej Nokia WRT Tools jest dostarczana z instalacją Chrome, która w rzeczywistości umożliwia ładowanie treści z innych witryn.

+0

To jest rzeczywiście sposób na przetestowanie kodu. Wyskakuje ostrzeżenie, a następnie Just Works. Dzięki wielkie! – Shermozle

+1

Dla porównania jest to odpowiednik dla parametru startowego Chrome/Chromium do programowania: "- -allow-file-access-from-files -disable-web-security -enable-file-cookies -disk- cache-size = 1 --media-cache-size = 1 " – miek

+9

To już nie działa. –

6

Niestety, przy użyciu następujących:

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

zostało wyłączone Firefox 5.

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

+0

Chcę wskazywać coś obviosly tutaj. Jeśli Firefox 5 nie pozwoli mi tego zrobić i naprawdę muszę, użyję Firefoxa 4 zamiast tego. To nie koniec świata. – erm3nda

2

Korzystanie z Chromium 13.07, można go uruchomić z bezpieczeństwem wyłączone:

/usr/bin/chrom przeglądarka --disable-web-security

To na Ubuntu 11, ale zmień lokalizację jako swój system.

+0

/opt/google/chrome/google-chrome --disable-web-security To działało dla mnie na Linux Mint 11.04, Google Chrome 14.0.8 –

0

W Chrome (& chrom) 48 i powyżej należy dodać flagę --user-data-dir tak:

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

I to działa.