Angular开发(十四)-利用angular的http转发、即代理http 请求,处理项目中请求跨域的问题

2023-11-12

虽然angular的http请求中提供了jsonp处理跨域问题,但是不常用,我们web服务器端可能会选择别的方式处理

  • web服务器端使用nginx进行反向代理处理
  • 使用nodejs中node-http-proxy解决本地开发ajax跨域问题
  • 使用angular自身的http转发,代理http请求

前面两种在本章节中就不去介绍,现在我只介绍第三种方式

一、在项目的根目录下创建一个proxy.conf.json文件,文件所在位置如图

这里写图片描述

  • 文件代码
{
    "**": {
        "target": "http://localhost:8000", // 指向需要代理的api地址
        "secure":false
    }
}

二、修改package.json文件

ng serve --proxy-config proxy.conf.json

这里写图片描述

三、利用nodejsexpress框架创建一个后端服务

const express = require("express");

const app = express();

let dataSet = [
    {"id":"0","name":"张三","age":20},
    {"id":"1","name":"李四","age":34},
    {"id":"2","name":"王五","age":30},
    {"id":"3","name":"马六","age":50}
];
app.get("/products",(req,res)=>{
    res.json(dataSet);
});

app.listen(8000,"localhost",()=>console.log("服务已经启动"))

四、案例demo代码

//ts文件
import {Component, OnInit} from '@angular/core';
import {Observable} from "rxjs/Observable";
import {Http} from "@angular/http";
import "rxjs/Rx";

@Component({
  selector: 'app-httpdemo',
  templateUrl: './httpdemo.component.html',
  styleUrls: ['./httpdemo.component.css']
})
export class HttpdemoComponent implements OnInit {
  dataSource: Observable<any>;
  dataSet: Array<any> = [];

  constructor(private http: Http) {
    this.dataSource = this.http.get("/products").map((res) => res.json());
  }

  ngOnInit() {
    this.dataSource.subscribe(
      (data) => this.dataSet = data
    )
  }

}
//html代码
<ul>
  <li *ngFor="let item of dataSet">{{item.name}}--{{item.age}}</li>
</ul>

五、运行效果

这里写图片描述

六、重要说明:启动服务的时候必须用npm run start启动,代理才生效,如果用ng serve启动代理不生效

七、一个完整的项目案例

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

Angular开发(十四)-利用angular的http转发、即代理http 请求,处理项目中请求跨域的问题 的相关文章

随机推荐

  • windows下:“activate” is not a conda command

    问题描述 在windows下安装了anaconda并安装虚拟环境后 打开Anaconda Prompt窗口 执行 conda activate virtual env 时出现以下错误 CommandNotFoundError Command
  • 神州路由器DHCPv6中继服务配置

    配置如下 R1 Router gt ena Router conf R1 config ipv6 unicast routing R1 config int g0 1 R1 config g0 1 ipv6 add 2001 1 2 64
  • 在WPF中将数据从数据库导出到Excel的快速解决方案

    Spire XLS一种专业且功能强大的Excel API 使开发人员 程序员可以使用其应用程序操作Excel文件 没有Microsoft Automation Spire XLS可使编程变得更加简单 免费下载 本文将介绍一种将数据从数据库导
  • python增删改查界面_必看!!!python列表( 增 删 改 查),超详细讲解!!

    列表类型特有方法 不同的类型有自己不同的操作方法 对列表的操作有增删改查四种操作 1 增加操作 方法描述append追加 在列表的尾部加入指定的元素 extend将指定序列的元素依次追加到列表的尾部 合并 不会去重复内容 insert将指定
  • 身份证性别判断

    性别判断 param value return 1 女 2 男 public String execute String value value value trim if value length 15 if Integer parseI
  • 加速度计和陀螺仪指南

    本帖翻译自IMU 加速度计和陀螺仪设备 在嵌入式应用中使用的指南 这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法 以及如何融合这两者 侧重算法 思想的讨论 介绍 本指南旨在向兴趣者介绍惯性MEMS 微机电系统 传感器 特别是加速度计和
  • ReentrantLock详解

    一 AQS 1 AbstractQueuedSynchronizer AbstractQueuedSynchronizer简称AQS 是一个用于构建锁和相关同步器的框架 它依赖于FIFO的等待队列实现 见AbstractQueuedSync
  • FS技术总结

    技术总结 1 单机FIO测试 1 1 配置FS环境 1 2 配置 Linux NVMe over Fabrics 主机 1 3 FIO通过配置文件运行 1 4 双机 双fio测试 1 5 fio测试 2 优化代码 2 1 程序运行细节 3
  • 【JavaEE】多线程CAS中的aba问题是什么?

    博主简介 想进大厂的打工人 博主主页 xyk 所属专栏 JavaEE初阶 什么是CAS问题 CAS 全称Compare and swap 字面意思 比较并交换 CAS中的aba问题是什么 请看本文讲解 目录 文章目录 一 CAS是什么 二
  • Qt 串口调试助手16进制收发显示

    就不废话了 直接贴源码 如果你看懂我的源码的画 我认为90 的概率能解决你16进制显示问题 注意 注意 注意 qt低版本可能不提供arr hex 这个函数 源码 QString str ui gt lineEdit gt text 从QLi
  • C++函数中返回引用和返回值的区别

    一 主要讨论下面两个函数的区别 int at return m data int at return m data 上面两个函数 第一个返回值是int的引用int 第二个返回值是int 二者的区别是什么呢 我们先用一个语句 const in
  • ElasticSearch 单机、集群安装

    文章目录 ElasticSearch 基本概念 安装启动 集群配置 快速启动一个集群节点实例 集群的状态 ElasticSearch 基本概念 索引 含有相同属性的文档集合 类型 索引可以定义一个或多个类型 文档必须属于一个类型 文档 文档
  • vue自定义tree树组件

    组件内容
  • java类和对象及python中的类似实现

    一 java类和对象 首先 我们简单说一下类和对象的理解 所有男的这相当于一个 类 而某个具体的人就是一个 对象 类 当做对象的模板 对象 根据类创建 在java中 使用关键词new创建新对象 java中定义一个类 public class
  • Node常用命令

    1 Node 使用淘宝镜像 npm install g mirror config china registry http registry npm taobao org 查询当前镜像 npm config get registry npm
  • [CVPR-21] Robust and Accurate Object Detection via Adversarial Learning

    代码 https github com google automl tree master efficientdet Det AdvProp md 目录 摘要 引言 方法 AdvProp Det AdvProp 实验 质量实验 消融实验 摘
  • Python每日一练第5天——将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等

    每日一练 做题 麦克叔叔去世了 他在遗嘱中给他的两个孙子阿贝和鲍勃留下了一堆珍贵的口袋妖怪卡片 遗嘱中唯一的方向是 尽可能均匀地分配纸牌的价值 作为Mike遗嘱的执行人 你已经为每一张口袋妖怪卡片定价 以获得准确的货币价值 你要决定如何将口
  • 【软件工程】之结构化设计

    结构化设计思考题如下 一 软件结构图 1 主要元素 2 形态特征指标 3 优化准则 1 模块独立性准则 2 软件结构的形态特征准则 3 模块的大小准则 4 模块控制域与作用域的准则 5 模块的接口准则 二 数据流模型 1 类型 1 变换流
  • QT中的信号与槽连接关系

    对于QT的信号与槽 进行一个信号连接两个槽 QT中connect的连接类型 AutoConnection在单线程中 按照默认的循序去触发相应的槽函数 DirectConnection在单线程中 对应的slot函数会被立刻调用 优先级高于主线
  • Angular开发(十四)-利用angular的http转发、即代理http 请求,处理项目中请求跨域的问题

    虽然angular的http请求中提供了jsonp处理跨域问题 但是不常用 我们web服务器端可能会选择别的方式处理 web服务器端使用nginx进行反向代理处理 使用nodejs中node http proxy解决本地开发ajax跨域问题