首页 > 解决方案 > http从资产中获取在已发布的应用程序Angular 9中不起作用

问题描述

我使用 Angular +9,从资产文件夹读取 json 文件时遇到问题。

我正在使用 http 模块,并且当应用程序在本地运行时调用工作正常,但是当我运行 ng-build 并在服务器上发布应用程序时,对 json 文件的调用不起作用,指示以下消息:

错误资产/资源/fakeData.json 的 Http 失败响应:0 未知错误

我的代码:

调用 json 文件的 http 请求

可能是什么问题呢?为什么我不能直接访问 assets 文件夹?

标签: jsonangularfilehttpget

解决方案


您的问题是您正在尝试使用HttpClient. 你不能那样做。您当然可以创建一个返回您的 json 文件的 API 端点,但是您不能像使用HttpClient模块那样直接访问它。

在这里我会做的是:

import * as myJson from '<path to fakeData.json>';
...
getData(): any {
   return myJson;
}

如果你只是想弄乱HttpClient模块并且需要一些 json 来玩,你可以使用JSON Placeholder API:

this.http.get('https://jsonplaceholder.typicode.com/todos/1');

根据下面的 SOF 问题,如果您愿意,您可以将本地 json 文件与 Angular 开发服务器一起托管:

使用角度 2 的 http.get() 从本地文件加载 json


推荐阅读