Heim > Web-Frontend > js-Tutorial > Hauptteil

Eine kurze Analyse der Verwendung des API-Proxys in Angular

青灯夜游
Freigeben: 2022-04-18 10:54:32
nach vorne
2396 Leute haben es durchsucht

In diesem Artikel erfahren Sie, wie Sie den API-Proxy in Angular verwenden, und erläutern die Verwendung von Angualr, um das Thema Proxy-API-Docking zu erläutern.

Eine kurze Analyse der Verwendung des API-Proxys in Angular

Als Front-End-Entwickler haben wir oft eine Schnittstelle zum Back-End. Beim Andocken stoßen wir jedoch immer auf domänenübergreifende Probleme. Wie lösen wir diese?

In diesem Artikel wird angualr verwendet, um das Thema des Proxy-api-Andockens zu erläutern. [Empfohlene verwandte Tutorials: „angualr 来讲解代理 api 对接的话题。【相关教程推荐:《angular教程》】

首先我们先来了解下,什么跨域。

跨域

简单理解:当一个请求的协议、域名(ip地址)、端口三部分任意一个当前页面的 url 不同就是跨域

以我的站点 https://jimmyarea.com 为例:

被请求的地址 是否跨域 原因
jimmyarea.com 协议不同
jimmyarea.cn 地址不同
https://127.0.0.1:9000 地址和端口号不同

代理

这个时候,我们可以通过代理,本地联调不同环境的 api 地址。

首先,我们在项目的根目录上新建一个文件 proxy.conf.json

我们以接口请求 https://jimmyarea.com/api/public/article?page=-1 为例子:

{
  "/api": {
    "target": "https://jimmyarea.com/",
    "changeOrigin": true,
    "secure": false,
    "pathRewrite": {
      "^/api": "/api"
    }
  }
}
Nach dem Login kopieren

target 是代理的地址,pathRewrite 是对代理的前缀的重写。

完成了代理文件之后,需要开启代理。我们在 package.json 中添加多一条命令行,表明是开发环境调试使用。

"script": {
  "dev": "ng serve --proxy-config=proxy.conf.json",
}
Nach dem Login kopieren

执行 npm run dev 启动项目并带上代理。每次代理文件更改,需要重新启动下该命令行~

验证

我们新建一个 article 的服务,其中 article.service.ts 文件内容如下:

import { Injectable } from '@angular/core';
// http 客户端
import { HttpClient } from '@angular/common/http'

@Injectable({
  providedIn: 'root'
})

export class ArticleService {

  constructor(
    private http: HttpClient
  ) { }
   
  // 获取文章列表
  getArticleList() {
    return this.http.get('/api/public/article', {
      // 返回类型
      responseType: 'json',
      // 请求的参数
      params: {
        page: -1
      }
    })
  }

}
Nach dem Login kopieren

上面的请求,在页面上地址是 http://localhost:4200/api/public/article?page=-1,其实访问的是地址 https://jimmyarea.com/api/public/article?page=-1。我们可以在 user-list.component.tsangular Tutorial

“]

Lassen Sie uns zunächst verstehen, was domänenübergreifend ist.

Eine kurze Analyse der Verwendung des API-Proxys in Angular

Domänenübergreifend

Einfaches Verständnis:

Wenn eine Anfrage drei Protokoll, Domänennamen (IP-Adresse) und Port< hat /code> Wenn die <code>URL einiger irgendeiner aktuellen Seiten unterschiedlich ist, bedeutet dies, dass es sich um eine domänenübergreifende Seite handelt

.

Nehmen Sie meine Website https://jimmyarea.com als Beispiel:

< th> Ob es domänenübergreifend ist < td>Das Protokoll ist anders< td>https://127.0.0.1:9000
Angeforderte AdresseGrund
jimmyarea.comJa
jimmyarea.cnJaDie Adresse ist anders
JaDie Adresse und die Portnummer sind unterschiedlich

< span style="font-size: 18px;">Agent🎜🎜🎜Zu diesem Zeitpunkt können wir den Proxy verwenden, um die api-Adressen von lokal zu debuggen verschiedene Umgebungen. 🎜🎜Zuerst erstellen wir eine neue Datei proxy.conf.json im Stammverzeichnis des Projekts. 🎜🎜Wir nehmen die Schnittstellenanfrage https://jimmyarea.com/api/public/article?page=-1 als Beispiel: 🎜
ngOnInit():void {
  this.articleService.getArticleList().subscribe({
    next: (data: any) => {
      console.log(data)
    },
    error: () => {}
  })
  // ...
}
Nach dem Login kopieren
🎜target ist die Adresse des Proxys ist pathRewrite eine Neufassung des Präfixes des Proxys. 🎜🎜Nachdem Sie die Proxy-Datei fertiggestellt haben, müssen Sie den Proxy aktivieren. Wir fügen eine weitere Befehlszeile in package.json hinzu, um anzugeben, dass sie zum Debuggen in der Entwicklungsumgebung verwendet wird. 🎜rrreee🎜Führen Sie npm run dev aus, um das Projekt zu starten und den Agenten zu bringen. Jedes Mal, wenn sich die Proxy-Datei ändert, müssen Sie die Befehlszeile neu starten ~🎜🎜🎜Überprüfung🎜🎜🎜Wir erstellen einen neuen Artikel Dienst, wobei der Inhalt der Datei article.service.ts wie folgt lautet: 🎜rrreee🎜Bei der obigen Anfrage lautet die Adresse auf der Seite http://localhost:4200/api/public /article?page= -1, tatsächlich ist die Adresse, auf die zugegriffen wird, https://jimmyarea.com/api/public/article?page=-1. Wir können es in user-list.component.ts aufrufen, um zu überprüfen: 🎜rrreee🎜Nachdem das Programm ausgeführt wurde, können Sie die folgende Netzwerkanforderung auf der Konsole sehen: 🎜🎜🎜🎜🎜🎜Gut gemacht, Bro.🎜 Wir können die vom Backend angegebene Adresse perfekt als Proxy verwenden und debuggen, und der Proxy kann mehr als eine Adresse als Proxy verwenden. Leser können zur Überprüfung mehrere Proxy-Adressen schreiben~🎜🎜[Ende]🎜🎜Weitere Kenntnisse zum Thema Programmierung finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Verwendung des API-Proxys in Angular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!