如何从HttpClient获取json文件?

2023-11-30

我正在尝试获得一个json文件来自HttpClient,但是当我添加时出现错误.subscribe

imports:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpClientModule } from '@angular/common/http';
import { HttpModule, Request, Response, Headers, Http } from '@angular/http';
import { Observable } from 'rxjs';

My code:

enter image description here

当我添加.subscribe(图像中黄色标记)我收到以下错误。这是什么意思?

对象 { _body:错误,状态:0,确定:错误,statusText:“”,标题: 对象,类型:3,url:null }


如果你想让事情变得非常清晰和有组织,你应该以角度创建一个服务并从你的组件调用该服务。

例如这样:

服务.ts:

import { Injectable } from "@angular/core";
import { Observable, throwError } from "rxjs";
import {
  HttpClient,
  HttpHeaders,
  HttpErrorResponse
} from "@angular/common/http";
import { catchError, map } from "rxjs/operators";

// Set the http options
const httpOptions = {
  headers: new HttpHeaders({ "Content-Type": "application/json", "Authorization": "c31z" })
};

@Injectable({
  providedIn: "root"

/**
 * Service to call all the API
 */
export class ApiService {
  constructor(private http: HttpClient) {}

  /**
   * Function to handle error when the server return an error
   *
   * @param error
   */
  private handleError(error: HttpErrorResponse) {
    if (error.error instanceof ErrorEvent) {
      // A client-side or network error occurred. Handle it accordingly.
      console.error("An error occurred:", error.error.message);
    } else {
      // The backend returned an unsuccessful response code. The response body may contain clues as to what went wrong,
      console.error(
        `Backend returned code ${error.status}, ` + `body was: ${error.error}`
      );
    }
    // return an observable with a user-facing error message
    return throwError(error);
  }

  /**
   * Function to extract the data when the server return some
   *
   * @param res
   */
  private extractData(res: Response) {
    let body = res;
    return body || {};
  }

  /**
   * Function to GET what you want
   *
   * @param url
   */
  public getListOfGroup(url: string): Observable<any> {

    // Call the http GET
    return this.http.get(url, httpOptions).pipe(
      map(this.extractData),
      catchError(this.handleError)
    );
}

}

组件.ts:

import { Component, OnInit } from "@angular/core";
import { ApiService } from "../../services/api.service";

@Component({
  selector: "app-example",
  templateUrl: "./example.component.html",
  styleUrls: ["./example.component.css"]
})
export class ExampleComponent implements OnInit{

  url = "/url/path/to/your/server";

  constructor(private api: ApiService) {}

  ngOnInit() {
    this.api
      .getListOfGroup(url)
      .subscribe(
        data => {
          console.log(data);
        },
        err => {
          console.log(err);
        }
      );
  }

}

我的建议是遵循 Angular 的入门指南,否则你很快就会迷失方向。角度服务教程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从HttpClient获取json文件? 的相关文章

随机推荐

  • 如何从 C++ 源代码创建 DLL,以及如何在其他源代码中使用它们?

    如何从 C 源代码创建 DLL 以及如何在其他源代码中使用它们 DLL 是一个 动态链接库 其工作方式与其他库非常相似 但不与可执行应用程序链接 在运行时 您可以调用特定函数来加载 DLL 并执行其导出的方法 您可以尝试自己创建 DLL 使
  • IFormattable.ToString 无法按十六进制格式的预期工作

    尝试格式化为十六进制时 String Format 和 IFormattable ToString format value 提供不同的结果 使用 IFormattable ToString format value 时如何获得正确的结果
  • 使用 ruby​​ 或 python 在文件中查找

    流行的文本编辑器具有以下在对话框中打开的 在文件中查找 功能 Look For searchtext File Filter txt htm Start From c docs 2009 Report Filenames FileCount
  • 如何解决haskell中的“堆栈空间溢出”

    运行以下程序将打印 空间溢出 当前大小8388608字节 我读过了this and this 但仍然不知道如何解决我的问题 我正在使用foldr 难道不应该保证它是 尾递归 吗 到目前为止 我对 Haskell 感觉很好 直到我知道在使用强
  • 处理异常的最佳方法是什么以及如何在 ASP.NET 中处理它们

    首先 我已经熟悉了简单的异常处理语法 但我问的是处理它们的最佳地点 最佳时间和最佳方式 我正在构建一个 N 层应用程序 所以我认为 DAL 有时会生成一些错误来处理 我刚刚了解了 SqlException 类 该类有什么用 我曾经看到一个处
  • 如何使用 GitLab CI 设置最小单元测试覆盖率?

    我有一个托管在 GitLab 上的项目 该项目已经具有有效的 CI 配置 我想添加 最小代码覆盖率 的概念 我想要的是强制一个正增量 合并请求的代码覆盖率必须大于目标分支的代码覆盖率 除非它已经是 100 我会接受 最低覆盖率 80 之类的
  • 隐藏 woocommerce 设置选项卡

    我想按用户角色隐藏特定的 woocommerce 设置选项卡 不是整个子菜单 而只是一个选项卡 具体请查看 我希望商店经理能够访问大部分设置 但无法影响结账设置 我怎样才能实现这个目标 如果您想删除选项卡而不是使用 CSS 隐藏它们 那么您
  • MemberDomainMap 中的实体框架 CodeFirst KeyNotFoundException

    尝试解决我的 EF datacontext 实现中的一个错误 该错误产生了一个相当神秘的错误 Test Name Nodes can be saved Test FullName MyProj Test Integration AFData
  • 如何绕过唯一ID和引用子节点

    我的 firebase 数据库如下所示 app users gn4t9u4ut304u9g4 email uid 如何引用电子邮件和 uid 当我尝试这个时 rootScope dashtype child users orderByChi
  • 在 Firebase Cloud Messaging 中将一个项目用于多个应用程序的优缺点

    在我们公司 我们有许多适用于 Android 和 iOS 的应用程序 我们想使用 Firebase 来推送通知 那么 我们是否需要创建新的project在每个应用程序的 Firebase 中 或者只使用一个包含所有应用程序的项目会更好吗 两
  • Neo4j Cypher:复制关系并删除节点

    我正在尝试复制节点的所有内部关系 n 到另一个节点 m 两个女巫我都知道id 在删除之前 n 但我无法提出代码 这些关系可能存在也可能不存在 有人摘录吗 您将无法从关系集合中动态创建关系类型 假设即使我们收集所有传入关系如下 START n
  • VB6 中是否有导出函数(而不是类)的方法?

    我想从 Visual Basic 6 创建一个 ActiveX DLL 我想从中调用一些公共函数 我将仅从 VB6 调用此 DLL 然而 似乎只有类被导出 有什么解决方法吗 我知道有一种方法可以使用标准 WINAPI 函数从 VB6 创建
  • 将两个 Xpath 组合成一个循环?

    我正在使用 xpath 从文档中获取信息 唯一的问题是我无法将它们组合成 1 个 for 循环 以便信息在页面上正确显示 我的代码是
  • 从 UI 选择特定时区时在 javascript/jquery 中添加类

    我正在编写如下所示的 html 代码 该代码来自此url In it 显示在 ET 时区下显示 100 正确 因为它们属于正确的日期但对于其他时区 PT MT CT AT NT 某些节目的日期不正确 代码下方的屏幕截图属于该类日程操作栏从下
  • Mysql自动更新事件

    使用 php 和 MySql 无论如何都可以在日期过期时获取数据库中的日期以自行更新 即事件名称 x 的日期为 2012 05 12 在 2012 05 13 日期应更改为 2012 05 19 从 2012 05 12 算起一周 多谢你们
  • 在哪里初始化托管 C++/CLI DLL?

    使用 C CLI 创建 DLL 时 或者我应该问 是否存在与 DllMain 等效的东西 这段初始化代码中不能调用的内容是否有任何限制 Dan 关于加载器锁 C CLI 的 CLR 延迟加载以及混合模式二进制文件的正确初始化 我昨天刚刚在这
  • Pyqt:从函数“动态”附加到 qtextedit

    我的 pyqt gui 中有一个按钮 单击该按钮会运行一个函数 该函数会执行一些冗长的数学计算 在这个函数中有很多打印语句 例如 print finished calculating task1 going on to task2 因此 通
  • java中用simplexml反序列化xml

    我正在尝试使用 SimpleXML 反序列化 xml 字符串 我查看了他们的示例 但我不确定我是否掌握了这个概念 示例 XML 验证
  • 生成不带foreignObject标签的svg

    我在用dom to image js插入 问题是 它会生成一个
  • 如何从HttpClient获取json文件?

    我正在尝试获得一个json文件来自HttpClient 但是当我添加时出现错误 subscribe imports import Injectable from angular core import HttpClient HttpHead