6

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

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

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

我得到了错误:

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

我尝试了各种路径组合,但它似乎不起作用......

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

4

4 回答 4

11

如果您使用的是 Google Chrome,则故意使file:///路径上的 AJAX 永远不起作用。

crbug/40787

于 2012-07-02T16:07:14.780 回答
5

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

对于 python 2 使用:

python -m SimpleHTTPServer 8000

对于 python 3 使用:

python -m http.server 8000

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

于 2017-08-02T04:51:20.857 回答
3

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

于 2012-07-02T16:08:04.950 回答
1

这与路径无关

这是一个跨域问题

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

详细看这个帖子

于 2012-07-02T16:07:11.753 回答