为什么我不能用 AngularJS $http加载本地 JSON 文件

Why can't I load up a local JSON file with AngularJS $http?

本文关键字:加载 JSON 文件 http 不能 AngularJS 为什么      更新时间:2023-09-26

我正在尝试加载与我的网页位于同一文件夹中的本地文件( todo.json ),如下所示:

$http.get("todo.json").success( function( data ){ //Do Some logic});

但是我在 Javascript 控制台中收到以下错误消息:

Error: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/quickCoder/Desktop/HTML5Apps/todo.json'.
...

如前所述,包含此代码的index.html文件与todo.json位于同一HTML5Apps文件夹中。有什么建议吗?

我认为您需要一个正在运行的网络服务器来为您的文件提供服务,并且 json 文件必须位于服务器的文件夹中。

您可以使用像node-serve这样的服务器。安装后很容易运行,只需在终端中键入serve即可。

[...]现在本地文件的协议不是 http://而是 file://。因此,不能从本地文件执行直接 AJAX 请求。这同样适用于通过 JavaScript 提供的许多其他 API,它们只能通过 HTTP 协议请求访问。这是因为 Web 的安全模型,我们将在另一篇文章中讨论。

报价来源 MDN