2010-10-21 27 views
8

Tôi có một tệp cục bộ html có hàm ajax cố gắng lấy nội dung xml từ x.com. Tệp khi chạy chỉ hoạt động trên IE và không thành công trên các trình duyệt firefox và safari. Ofcourse điều này có thể là do chính sách cùng một nguồn gốc. Tuy nhiên, tôi đã nghe từ một ai đó rằng đối với các tập lệnh được tải bằng cách sử dụng giao thức file: //, thì chính sách gốc này sẽ không được áp dụng. Có đúng không và nếu có, điều gì có thể là vấn đề với tệp html cục bộ của tôi?Tên miền chéo ajax không thành công ngay cả đối với tệp cục bộ

Trả lời

8

Nó thực sự được áp dụng cho các tệp cục bộ, xử lý tất cả chúng dưới dạng các tên miền riêng biệt (điều này thay đổi theo trình duyệt, như bạn thấy). Ví dụ trong Chrome, bạn có thể khởi chạy nó với một dòng lệnh để cho phép điều này:

chrome.exe --allow-file-access-from-files 
5

Trong Mozilla nộp uri có những hạn chế thậm chí khắt khe hơn cùng chính sách nguồn gốc .. https://developer.mozilla.org/En/Same-origin_policy_for_file:_URIs Tuy nhiên bạn có thể qua đi xe bằng cách yêu cầu sự cho phép cho toàn cầu truy cập bằng cách sử dụng:

if (navigator.userAgent.indexOf("Firefox") != -1) { 
      try { 
       netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
      } 
      catch (e) { 
       alert("Permission UniversalBrowserRead denied -- not running Mozilla?"); 
      } 
     } 
Các vấn đề liên quan