【问题标题】:Angularjs access local json files [duplicate]Angularjs访问本地json文件[重复]
【发布时间】:2014-10-30 09:37:12
【问题描述】:

我是 angularjs 的新手,我整天都在网上搜索,只是为了找到从本地 json 文件获取数据的解决方案,而不必为我的 webapp 使用 localhost。不幸的是,我还没有找到任何东西。我尝试使用 $http.get 但我得到 Cross Origin * 错误。

有没有其他方法可以从本地 json 文件中获取数据而无需在本地托管我的 webapp?

angularjs 是否有任何其他功能可以从本地 json 文件中获取数据而无需使用其 $http.get?

【问题讨论】:

  • 我不明白您建议的链接的相关性。我已经知道了。我只是问 Angularjs 是否有能力像 vanillajs 的 jsonp.fetch(url) 函数那样读取本地 JSON 文件。
  • 您所有(@Re-l、@ivarni、@Second Rikudo)建议的重复项似乎与该问题无关。我的理解是,问题与使用Angular.JS Framework 的方法有关。 Angular.JS 仍然是 JavaScript,但有自己的方法,可能不同于 Native JavaScript
  • @JennyCasarino Angular IS Javascript。它受到适用于 Javascript 的相同规则的限制。如果你不能在 Javascript 中做某事,那么你就不能在 Angular 中做。在沙盒方面,它没有与原生 Javascript 不同。
  • @ivarni 在这种情况下,如果 JavaScript 不限于访问 本地 JSON 文件问题的全部内容),你'重新说AngularJS Framework 可以做同样的事情。在我的理解中,我再说一遍,问题是关于如何使用AngularJS 来完成这样的任务。我真的不回答@GreenSky 的问题,因为我也在寻找答案。但是如果问题是关于如何使用 pure Native JavaScript。我会回复他使用JSONP
  • 而且这个问题不应该tag[duplicate]

标签: javascript json angularjs


【解决方案1】:

您可以参考 json 文件,使用 GET 方法调用它们,如下所示:

$http.get('phones/phones.json').success((data) => {
   $scope.phones = data;
});

检查 official AngularJS tutorial 看看你做错了什么。

更新:

对于 angular 1.6+ success 方法不再有效,而是使用 then:

$http.get('phones/phones.json').then((data) => {
   $scope.phones = data;
});

参考来源here

【讨论】:

  • 我已经试过了。它仍然给我交叉原点 * 错误
  • 如果您对自己的代码有疑问,请发布您的代码或编造一个小提琴。也许你错过了在你的控制器上使用$http。这是一个常见的错误。
  • var app = angular.module("MyApp", []); app.controller("MyFunction", ['$scope','$http', function($scope, $http) { $http.get('json/producttable.json').success (function(data){ $ scope.mydata = 数据; }); }] );
  • 代码没问题,我有完全相同的代码,它适用于我,但我确实在 localhost 中运行我的 Angular 应用程序......
  • 值未定义
【解决方案2】:

您需要将应用程序部署到某个 http 服务器,最简单的方法是使用节点,这里是示例 https://www.npmjs.org/package/http-server,或者您可以更改浏览器安全设置。

【讨论】:

  • 但这仍然意味着我将在本地托管它。我目前正在开发的 webapp 要求 json 是本地的,这样当没有互联网连接时,我仍然可以看到一些东西。本机端写入这个 json 文件。这是一种混合类型的应用。
  • 这是 chrome 扩展吗?有一个问题,你不能从本地系统加载文件,如果你在没有用户交互的情况下加载文件,那将是一个很大的安全问题,你可以进行文件输入,所以用户可以加载那个 json,或者将值存储到 localstorage。
  • 与普通的旧 js 不同。 angularjs 没有像 jsonp.fetch(url) 这样的东西,我可以从本地 json 文件中获取数据?
  • 经过一个小时的研究和测试。终于让它停止给我跨域错误。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
相关资源
最近更新 更多