2014-09-09 22 views
14

Tôi đang sử dụng mã bên dưới để tạo liên kết, khi tôi nhấp vào liên kết trong IE, tài khoản này hoạt động và tôi có thể mở URL nhưng không có trong Chrome.Không được phép tải tài nguyên cục bộ: tệp

Test<a href='#'onClick=window.open('file:\\160.53.112.171\myTest\cons\4.1\displayData.htm','_self') > 

Dưới đây là thông báo lỗi được hiển thị trên bảng điều khiển của Chrome.

Không được phép tải tài nguyên cục bộ: tệp: file: /// C: /160.53.112.171myTestcons%04.1displayData.htm trong chrome.

+1

url sử dụng '/', không '' \ '' –

+0

nó không phải là "file: \\", đó là "file: //" vẫn không biết nếu chrome sẽ cho phép nó, nhưng có con đường phù hợp sẽ giúp ích nếu nó sẽ xảy ra. – dandavis

+1

Tôi đã thử cả '\' và '/' nhưng không hoạt động trong chrome và đưa ra lỗi được đề cập ở trên trên bảng điều khiển. – scrit

Trả lời

-1

Tôi đã thử điều này trong IE, Chrome và Firefox. Nó hoạt động.

<a href='#'onClick=window.open('displayData.html','_self') >Test</a> 

Tôi không chắc chắn, nhưng có thể phiên bản trình duyệt của bạn ảnh hưởng đến nó. Vui lòng cập nhật phiên bản trình duyệt của bạn rồi thử lại.

+0

khi được thực hiện bằng máy chủ tomcat, nó ném lỗi dưới đây lên bảng điều khiển trình duyệt: Không được phép tải tài nguyên cục bộ: tệp: \\ 160.53.112.171 \ myTest \ cons \ 4.1 \ displayData.htm, giống như khi thực thi như bình thường html - @Sanjay. – scrit

1

Khi bạn cố mở tệp bằng FILE:\\\\ qua javascript trong IE. IE sẽ không cho phép bạn mở nó (đó là một hành vi mặc định) vì một số hạn chế bảo mật. Tôi đã phải đối mặt với vấn đề bảo mật IE trước đây trong nhiều dự án. Bạn có thể thử thay đổi các thiết lập bảo mật của IE như được đưa ra dưới đây, nhưng nó không được khuyến khích (vì bạn không thể thay đổi cài đặt của mỗi người dùng để thay đổi hành vi).

thiết lập Sau khi làm việc cho IE 8

Trong Internet Explorer, vào Tools → Internet Options → Advanced. Cuộn xuống phần Bảo mật và chọn hộp "Cho phép nội dung đang hoạt động chạy trên các tệp trên Máy tính của tôi".

2

Đối với bất cứ ai hạ cánh ở đây và làm việc trong asp.net:

Tôi đã có cùng một vấn đề (không được phép tải tài nguyên địa phương) ở mọi trình duyệt trừ IE.

workaround của tôi là có neo trực tiếp đến một handler & bao gồm một chuỗi truy vấn cho đường dẫn:

<a href='handler.ashx?file=//server_name//dir//filename.pdf' /> 

Sau đó xử lý sẽ viết các tập tin như là phản ứng (mở ra trong một tab mới như mong muốn với _self):

public void ProcessRequest (HttpContext context) { 

     if (context.Request["file"] != null && !String.IsNullOrEmpty(context.Request["file"].ToString())) 
     { 
      try 
      { 
       context.Response.Clear(); 
       context.Response.ClearContent(); 
       context.Response.ClearHeaders(); 
       //whichever content type you're working with 
       context.Response.ContentType = "application/pdf"; 

       //encode the path when you set the href of the anchor, so decode it now 
       string file_name = HttpUtility.UrlDecode(context.Request["file"].ToString()); 
       context.Response.TransmitFile(file_name); 

      } 
      catch { } 
     } 
} 
+0

Vâng, khi bạn xử lý yêu cầu qua máy chủ, sẽ không có bất kỳ vấn đề bảo mật nào. – Utkarsh

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