2008-12-01 13 views
31

Tôi muốn phát triển JavaScript trên máy tính Windows của mình. Bạn có biết trình duyệt nơi tôi có thể tắt Chính sách xuất xứ tương tự để tôi có thể phát triển cục bộ không? Firefox sẽ tối ưu.Tôi có thể vô hiệu hóa SOP (Chính sách gốc tương tự) trên bất kỳ trình duyệt nào để phát triển không?

Hoặc nếu bạn biết proxy tôi có thể sử dụng cho trang SOAP/WSDL, nó cũng sẽ tuyệt vời.

Tôi đang cố gắng làm việc với JavaSCript SOAP Client.

+0

Tôi đã có cùng một mong muốn tương tự khi tôi phát triển một ứng dụng MySpace. –

Trả lời

0

Firefox sẽ tối ưu.

Nếu bạn có thể sống với Internet Explorer, bạn có thể sử dụng một ứng dụng .hta

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

(Đây là một trong những cách các thỏa thuận cụ Selenium thử nghiệm tự động hóa với vấn đề này)

2

Tạo một trang trên máy chủ cục bộ của bạn gọi máy chủ từ xa và trả lời giống như máy chủ từ xa.

Ví dụ, javascript gọi máy chủ cục bộ cho JSON. Máy chủ cục bộ thực hiện cuộc gọi đến máy chủ từ xa cho JSON đó. Máy chủ cục bộ nhận JSON từ máy chủ từ xa và gửi nó tới javascript.

1

Tất cả các câu trả lời nhất định là những câu trả lời hay nhất khi nói đến việc có được chính sách gốc tương tự trong sản xuất.

Để phát triển, không có cách thuận tiện để "vô hiệu hóa" kiểm tra bảo mật này. Có cách giải quyết (xem câu trả lời khác) hoặc hack (bạn có thể sử dụng Greasemonkey để bọc JavaScript và sử dụng GM_xmlhttprequest của họ như một biện pháp tạm thời), nhưng không có cách nào thực sự "tắt nó đi" như bạn mô tả.

+1

+1 cho GM_xmlhttprequest – baptx

-1

Bạn cũng có thể chuyển hướng cổng cục bộ đến máy chủ từ xa và cổng qua ssh.

15

CẬP NHẬT 6/2012: Đây đã từng làm việc tại thời điểm các văn bản, nhưng rõ ràng là không còn nữa. Lấy làm tiếc.

Trong Firefox (có thể áp dụng đối với các trình duyệt Gecko dựa trên khác cũng) bạn có thể sử dụng đoạn mã JavaScript sau để cho phép các cuộc gọi cross-domain:

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

Dường như có an issue tạo ra trong vấn đề Chromium theo dõi để đạt được cùng một chức năng, vì vậy bạn có thể thử khởi động Chrome bằng đối số --disable-web-security. Tôi không biết bản dựng nào hoạt động chính xác, nhưng ít nhất là WRT Tools của Nokia đi kèm với cài đặt Chrome thực tế cho phép tải nội dung từ các trang web khác.

+0

Đây thực sự là cách kiểm tra mã của bạn. Bật lên một cảnh báo và sau đó chỉ hoạt động. Cám ơn rất nhiều! – Shermozle

+1

Đối với hồ sơ, đây là chuỗi tham số khởi động Chrome/Chromium tương đương khá nhiều để phát triển: "--cho phép truy cập tệp-từ-tệp - có thể xóa-web-bảo mật - có thể lưu-tệp-cookie --disk- cache-size = 1 --media-cache-size = 1 " – miek

+9

Điều này không còn hoạt động. –

6

Thật không may, sử dụng như sau:

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

đã bị vô hiệu hóa trong Firefox 5.

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

+0

Tôi muốn chỉ một điều obviosly ở đây. Nếu Firefox 5 không cho phép tôi làm điều đó và tôi thực sự cần, tôi sẽ sử dụng Firefox 4 để thay thế. Không phải là kết thúc của thế giới. – erm3nda

2

Sử dụng Chromium 13.07, bạn có thể bắt đầu nó với an ninh vô hiệu hóa:

/usr/bin/crom trình duyệt --disable-web-an ninh

Đó là trên Ubuntu 11, nhưng thay đổi vị trí làm hệ thống của bạn.

+0

/opt/google/chrome/google-chrome - bảo mật-web-an ninh Điều đó làm việc cho tôi trên Linux Mint 11.04, Google Chrome 14.0.8 –

0

Trong Chrome (& Chromium) 48 trở lên bạn nên thêm cờ --user-data-dir như thế này:

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

Và nó hoạt động.

Các vấn đề liên quan