首页前端开发其他前端知识Angular中api代理的使用是怎样, 对接问题如何解决

Angular中api代理的使用是怎样, 对接问题如何解决

时间2024-03-26 17:32:03发布访客分类其他前端知识浏览1511
导读:今天就跟大家聊聊有关“Angular中api代理的使用是怎样, 对接问题如何解决”的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 作为前端开发,我们...
今天就跟大家聊聊有关“Angular中api代理的使用是怎样, 对接问题如何解决”的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  

作为前端开发,我们跟后端对接接口是很频繁的事情,但是,我们对接的过程中总是遇到跨域的问题,那么我们如何解决呢?

本文使用 angualr 来讲解代理 api 对接的话题。

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

跨域

简单理解:当一个请求的协议、域名(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"
    }

  }

}

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

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

"script": {

  "dev": "ng serve --proxy-config=proxy.conf.json",
}

执行 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
      }

    }
)
  }


}

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

ngOnInit():void {

  this.articleService.getArticleList().subscribe({
    
    next: (data: any) =>
 {

      console.log(data)
    }
    ,
    error: () =>
 {
}

  }
)
  // ...
}
    

程序跑起来后,你可以在控制台上看到下面的网络请求:

Good Job, Bro. 我们能够完美代理后端所给的地址,进行调试了,并且代理可不止代理一个地址哦。读者可以编写多个代理地址验证一下~



关于“Angular中api代理的使用是怎样, 对接问题如何解决”的内容就介绍到这,感谢各位的阅读,相信大家对Angular中api代理的使用是怎样, 对接问题如何解决已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Angular中api代理的使用是怎样, 对接问题如何解决
本文地址: https://pptw.com/jishu/653651.html
PHP反射机制是什么?反射类型有哪些? Golang使用sort排序怎么实现,代码是什么

游客 回复需填写必要信息