Analisis ringkas tentang cara menggunakan proksi Api dalam Angular

青灯夜游
Lepaskan: 2022-04-18 10:54:32
ke hadapan
2397 orang telah melayarinya

Artikel ini akan memperkenalkan kepada anda cara menggunakan proksi Api dalam Angular, dan bercakap tentang penggunaan angualr untuk menerangkan topik dok api proksi saya harap ia akan membantu semua orang.

Analisis ringkas tentang cara menggunakan proksi Api dalam Angular

Sebagai pembangun bahagian hadapan, kami sering bersambung dengan bahagian belakang Walau bagaimanapun, kami sentiasa menghadapi masalah merentas domain semasa proses dok penyelesaiannya?

Artikel ini menggunakan angualr untuk menerangkan topik ejen api dok. [Tutorial berkaitan yang disyorkan: "tutorial sudut"]

Pertama sekali, mari kita fahami apa itu merentas domain.

Rentas domain

Pemahaman mudah: Apabila 协议、域名(ip地址)、端口 tiga bahagian permintaan任意一个url daripada halaman semasa Perbezaannya ialah merentas domain .

Ambil tapak saya https://jimmyarea.com sebagai contoh:

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

Agen

Pada masa ini, kita boleh lulus Ejen, penyahpepijatan bersama setempat api alamat dalam persekitaran yang berbeza.

Pertama, kami mencipta fail baharu proxy.conf.json dalam direktori akar projek.

Kami mengambil permintaan antara muka https://jimmyarea.com/api/public/article?page=-1 sebagai contoh:

{
  "/api": {
    "target": "https://jimmyarea.com/",
    "changeOrigin": true,
    "secure": false,
    "pathRewrite": {
      "^/api": "/api"
    }
  }
}
Salin selepas log masuk

target ialah alamat proksi dan pathRewrite ialah penulisan semula awalan proksi .

Selepas melengkapkan fail proksi, anda perlu mendayakan proksi. Kami menambah satu lagi baris arahan dalam package.json untuk menunjukkan bahawa ia digunakan untuk penyahpepijatan dalam persekitaran pembangunan.

"script": {
  "dev": "ng serve --proxy-config=proxy.conf.json",
}
Salin selepas log masuk

Laksanakan npm run dev untuk memulakan projek dan membawa ejen. Setiap kali fail proksi berubah, anda perlu memulakan semula baris arahan~

Pengesahan

Kami mencipta perkhidmatan article baharu, di mana article.service.ts Kandungan fail adalah seperti berikut:

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
      }
    })
  }

}
Salin selepas log masuk

Permintaan di atas, alamat pada halaman adalah http://localhost:4200/api/public/article?page=-1, tetapi alamat yang sebenarnya diakses ialah https://jimmyarea.com/api/public/article?page=-1. Kami boleh memanggilnya dalam user-list.component.ts untuk mengesahkan:

ngOnInit():void {
  this.articleService.getArticleList().subscribe({
    next: (data: any) => {
      console.log(data)
    },
    error: () => {}
  })
  // ...
}
Salin selepas log masuk

Selepas program berjalan, anda boleh melihat permintaan rangkaian berikut pada konsol:

Analisis ringkas tentang cara menggunakan proksi Api dalam Angular

Good Job, Bro. Kami boleh memproksi dengan sempurna alamat yang diberikan oleh bahagian belakang dan menyahpepijatnya, dan proksi boleh memproksi lebih daripada satu alamat. Pembaca boleh menulis berbilang alamat proksi untuk mengesahkan~

[Tamat]

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan proksi Api dalam Angular. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!