提问者:小点点

使用HttpClient将请求发布到本地json文件


我有一个名为fake的json文件。我的angular应用程序中的json内部资源。此文件的路径如下所示。

MyApp=

我想使用我的组件中的HttpClient(位于应用程序文件夹内)对此文件发出POST请求。

MyApp=

组件源代码

export class StatisticsComponent {

  persons: Person[];

  options = {
    sDom: 'rt<"bottom"p>',
    pagingType: 'full_numbers',
    pageLength: 10,
    serverSide: true,
    processing: true,
    ajax: (dataTablesParameters: any, callback) => {
      this.http
        .post<DataTablesResponse>(
          './../../assets/json/fake.json',
          dataTablesParameters, {}
        ).subscribe(resp => {
          this.persons = resp.data;
          callback({
            recordsTotal: resp.recordsTotal,
            recordsFiltered: resp.recordsFiltered,
            data: []
          });
        });
    },
    columns: [
      { data: "id" },
      { data: "firstName" },
      { data: "lastName" }
    ]
  };

  constructor(private http: HttpClient) {

  }

}

class Person {
  id: number;
  firstName: string;
  lastName: string;
}

class DataTablesResponse {
  data: any[];
  draw: number;
  recordsFiltered: number;
  recordsTotal: number;
}

我发生了以下错误

的HttpErrorResponse Http故障响应http://localhost:4200/assets/json/fake.json:404找不到

我对此有两个疑问。

>

  • 使用Http或HttpClient向本地json文件发出POST请求是否有效。(到目前为止,我已经使用Http而不是HttpClient完成了GET请求,并成功地获取了数据)

    当文件存在于文件夹中时,为什么返回404未找到。

    我需要帮助。


  • 共2个答案

    匿名用户

    这是因为您在assets文件夹中放入的任何内容都将通过GET请求提供。您只需导航到http://localhost:4200/assets/json/fake.json在浏览器上。如果要测试POST方法,需要启动服务器。

    HttpModule在Angular的更高版本中被弃用和删除。您应该将其更改为HttpClientModule

    要使用HttpClient对其进行测试,可以执行以下操作。

    HttpClientModule添加到您的AppModule

    在组件中注入HttpClient

    构造函数(私有httpClient:httpClient){}

    并提出如下要求

    this.httpClient.get('/assets/json/fake.json',  { observe: 'body' })
        .subscribe(result => {
          console.log(result);
        });
    

    匿名用户

    为了从本地JSON文件读取或写入数据,可以使用JSON服务器。

      创建fake.json文件
    1. 安装json-servernpm i json-server.
    2. 启动JSON Serverjson-server--watchfake.json.
    3. 现在请求服务器在http://localhost:3000/

    请点击文档链接:https://www.npmjs.com/package/json-server