JQuery.getJSON()读取本地文件

时间:2012-07-02 16:03:42

标签: javascript jquery json local-files

如何使用JQuery.getJSON()读取当前目录中的文件?

我正在尝试一些简单的事情(将我的data.json文件放在与我的html文件相同的目录中):

$.getJSON("./data.json")

我收到错误:

  

XMLHttpRequest无法加载file:/// C:/Projects/test/data.json。 Access-Control-Allow-Origin不允许使用null。

我尝试了各种路径组合,但似乎没有用......

编辑:我正在使用Chrome,但我想在所有浏览器中工作......

4 个答案:

答案 0 :(得分:10)

如果您使用的是谷歌浏览器,则file:///路径上的AJAX无意无效。

crbug/40787

答案 1 :(得分:3)

这是因为您直接从硬盘驱动器运行Web文件。这有各种各样的陷阱,其中一个是你找到的。理想情况下,您希望在服务器环境中工作,甚至在本地工作。您可以安装(免费)本地LAMP服务器,例如XAMPP。然后,您将能够使用本地AJAX。

答案 2 :(得分:1)

这不是关于路径

这是一个跨域问题

基本上你需要在你的URL中添加一个回调,这样jQuery就可以自动将请求类型从json更改为jsonp

有关详细信息,请参阅此post

答案 3 :(得分:0)

安装本地LAMP服务器的另一种方法是使用python的简单HTTP服务器。只要你安装了python,只需打开bash并使用python解释器。

对于python 2使用:

python -m SimpleHTTPServer 8000

对于python 3使用:

python -m http.server 8000

然后将浏览器指向localhost:8000,如果文件位于同一目录中,则访问该文件时不会有任何问题。