2013-01-24 31 views
7

Có cách nào để tải dữ liệu từ tệp dữ liệu (ví dụ: tệp JSON .js) bằng jQuery không?Làm cách nào để tải tệp cục bộ bằng jQuery? (có tệp: //)

ví dụ:

$.get("file:///C:/objectData.js", function() { alert('Load was performed.'); }); 

Tại thời điểm này, thay vì làm một HTTP đơn giản GET, JQuery dường như cố gắng để làm một OPTIONS yêu cầu trên nó, mà không thành công trên một file: // URI. Tôi chỉ muốn tải dữ liệu để trang web có thể được sử dụng trong môi trường ngoại tuyến (không cần cài đặt máy chủ web).

+1

Có thể trùng lặp: http://stackoverflow.com/questions/4408707/jquery-read-text-file-from-file-system – aurbano

Trả lời

5

GET yêu cầu kết nối HTTP, vì vậy không có trình phục vụ web cục bộ, tính năng này sẽ không hoạt động. Trong khi bạn có thể open and read a file sử dụng HTML5, bạn không thể tải tài nguyên JavaScript theo cách đó.

Nếu trang được tải cục bộ, bạn thường tải JS bằng cách sử dụng thẻ tập lệnh.

<script type='text/javascript' src='/objectData.js'></script> 

Cách duy nhất xung quanh đây có thể là trong câu trả lời này: Is it possible to load in a local version of a JavaScript file instead of the server version?

hoặc this (cả hai yêu cầu thực hiện một địa phương pseudo-server):

3

Tôi hy vọng nó có thể. Tôi đã thử nó. mã Html và các tệp văn bản nằm trong cùng một thư mục.

Đây là phần jQuery.

$(document).ready(function() 
{ 
    $("select").change(function() 
    { 


     file_name = $("select").val(); 
     $('#span_result').load(file_name); 
    }); 
}); 

Mã Html là

<select class="sel" name="files"> 
    <option value="">Select a file</option> 
    <option value="file.txt">file.txt</option> 
    <option value="file2.txt">file2.txt</option> 
    <option value="jQuery_file.html">jQuery_file.html</option> 
    </select><br> 
    <p>Contents of the file will be displayed below</p> 
    <div id="span_result"></div> 

Itworked cho tôi trong firefox. Xin lỗi nếu nó không thành công với bạn.

+4

Trên Chrome, lỗi này không thành công trên tệp: // - "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. " Như mong đợi từ các tài liệu. http://api.jquery.com/load/ "Tải dữ liệu từ máy chủ" – ChrisJJ

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