2015-11-12 20 views
6

Tôi phải tải một tệp HTML trong div hiện có khi chiều rộng của cửa sổ nhỏ hơn 600px.Chức năng tải của jQuery không hoạt động cục bộ

Mã này là:

<head> 
<script> 
    $(document).ready(function(){ 
     if($(window).width() < 600) { 
      $("#testing_div").load("C:/Users/elena/Desktop/Demo/prova.html"); 
     } 
    }); 
</script> 
</head> 
<body> 
    <div id="testing_div"> </div> 
</body> 

Tôi đã kiểm tra mã này trên trang web của tôi và nó hoạt động, nhưng có lẽ tôi đang làm điều gì sai để làm cho nó hoạt động tại địa phương.

Có lý do nào khiến chức năng load không hoạt động cục bộ nhưng chỉ hoạt động trên máy chủ web?

+10

Bạn không thể yêu cầu hệ thống tệp cục bộ - bạn cần sử dụng máy chủ web. –

+1

Bảng điều khiển trình duyệt của bạn là người bạn tốt nhất của bạn. "Yêu cầu nguồn gốc chéo chỉ được hỗ trợ cho các giao thức giao thức: http, dữ liệu, chrome, chrome-extension, https, chrome-extension-resource". Bạn cũng liên kết đến thư viện jQuery ở đâu? Nó phải nằm giữa các thẻ '' – NewToJS

+1

Hãy tưởng tượng các vấn đề bảo mật xuất hiện nếu loại quyền truy cập hệ thống tệp này có sẵn từ phía máy khách. – px5x2

Trả lời

4

Lý do là bảo mật. Chạy các trang web thông qua giao thức file:// đã vô hiệu hóa rất nhiều tính năng vì sự cố bảo mật. Bạn có thể làm cho một máy chủ web trong javascript thông qua Node.js và bạn có thể có một máy chủ web trong địa phương mà không cần cài đặt apache hoặc một cái gì đó tương tự.

Node.js trang web:

https://nodejs.org/en/

-1

Tôi có 2 cách để giải quyết nó một cách nhanh chóng.

1 - Bạn có thể tải xuống tiện ích "Cho phép-kiểm soát-cho phép xuất xứ" trên google chrome.

2 - Bạn có thể cài đặt chương trình wamp, wamp sẽ mô phỏng một máy chủ web cục bộ. Trong trường hợp này, bạn sẽ truy cập trang của mình bằng cách sử dụng: "localhost/name_of_the_page.html"

+0

WAMP là quá mức cần thiết cho việc này. Node.js 'serve' đơn giản sẽ đủ. – Matheus208

+0

ok @ Matheus208, nhưng trong tương lai cô ấy sẽ đặt nó trên máy chủ web. –

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