angular接口传参

1、service文件

创建xxx.service.ts文件

import { Injectable, Inject } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';

@Injectable({
providedIn: 'root'
})
export class ErrorConditionService {
constructor(private http: HttpClient,
         @Inject('BASE_CONFIG') private config) { }

}
BASE_CONFIG在app.module.ts文件中写
providers: [
{
provide: 'BASE_CONFIG',
useValue: {
url: 'myurl'
}
}
]

设置proxy实现跨域
(在项目根目录下新建proxy.conf.json,然后在package.json文件中配置一下)

 

1)proxy.conf.json代码
{
"/myurl": {
"target": "http://10.0.0.0:0000",
"secure": true
}
}

2)修改package.json(ng serve -o --proxy-config proxy.conf.json)


2、http请求

post传json格式数据:

const data = {
  id: 1
}
ceshi1(data): Observable<any> {
const url = `${this.config.myurl}/xxx/xxxxx`;
return this.http.post(url, data).pipe(
map((res: any) => {
return res;
})
);
}

post传params格式数据1(传参少且字符短):

const data = {
  id: 1
}
ceshi2(data): Observable<any> {
const url = `${this.config.myurl}/xxx/xxxxxx`;
return this.http.post(url, {},{ params: data }).pipe(
map((res: any) => {
return res;
})
);
}

post传params格式数据2(传参多且字符长):

const data = {
  id: 1,
  text:‘成百上千个字节’
}
const params = new HttpParams({
fromObject: data
});
ceshi2(data): Observable<any> {
const url = `${this.config.myurl}/xxx/xxxxxx`;
return this.http.post(url, params).pipe(
map((res: any) => {
return res;
})
);
}

 或者(效果同上)

const formData = new FormData(); 
formData.append('id',1);
formData.append('text','成百上千个字符');
ceshi2(data): Observable<any> {
const url = `${this.config.myurl}/xxx/xxxxxx`;
return this.http.post(url, formData).pipe(
map((res: any) => {
return res;
})
);
}

 

问题:get请求转码

使用angular中所带的get方法进行传参{params: data}时,会转义,对“+”这种特殊符号,会转成“ ”,后端接收到“ ”,无法区分是空还是加号,这种就需要前端在使用get方法(参数值不定)的情况下,不去使用angular所带的方法,把参数中的“+”转为“%2B”【参数.replace(/\+/g,"%2B")】,然后自己拼接url,进行传参。

参考链接:https://blog.csdn.net/weixin_33725270/article/details/87219207


转载于:https://www.cnblogs.com/boreguo/p/10342598.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lvm-snapshot:基于LVM快照的备份

续 lvm-snapshot&#xff1a;基于LVM快照的备份之准备工作Attention,Please! 重头戏开始啦3.基于LVM快照的备份lvm-snapshot&#xff1a;基于LVM快照的备份(1)事务日志跟数据文件必须在同一个卷上&#xff1b;(2)创建快照卷之前&#xff0c;要请求MySQL的全局锁&#xff1b;在快…

美玉待琢——《一本写满评论的艾泽拉斯收藏指南》

http://bbs.ngacn.com/read.php?tid701056&fpage1 转载于:https://www.cnblogs.com/Evanescence/archive/2006/10/11/526396.html

https网络编程——如何建立利用根证书(凭证)签发建立中继证书(凭证)详解

参考&#xff1a;如何建立利用根证书&#xff08;凭证&#xff09;签发建立中继证书&#xff08;凭证&#xff09;详解 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108221568?spm1001.2014.3001.5502 目录在建立中继之前需要自建根证书建立根证书的具体步…

NURBS曲线与曲面

B样条方法在表示与设计自由型曲线曲面形状时显示了强大的威力&#xff0c;然而在表示与设计初等曲线曲面时时却遇到了麻烦。因为B样条曲线包括其特例的Bezier曲线都不能精确表示出抛物线外的二次曲线&#xff0c;B样条曲面包括其特例的Bezier曲面都不能精确表示出抛物面外的二次…

IPTV网络电视

IPTV即交互式网络电视&#xff0c;是一种利用宽带网的基础设施&#xff0c;以计算机&#xff08;PC&#xff09;或“普通电视机&#xff0b;网络机顶盒&#xff08;TV&#xff0b;IPSTB&#xff09;”为主要终端设备&#xff0c;向用户提供视频点播、Internet访问、电子邮件、游…

https网络编程——如何利用中继证书(凭证)建立服务器证书

参考&#xff1a;如何利用中继证书&#xff08;凭证&#xff09;建立服务器证书 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108225569?spm1001.2014.3001.5502 目录建立服务器证书的前提是要建立中继证书建立服务器证书的具体步骤1、建立一个目录&#x…

上传图片

2019独角兽企业重金招聘Python工程师标准>>> private File imageFile;// 上传文件名称private String imageFileFileName;// 上传文件类型private String imageFileContextType; InputStream is new FileInputStream(imageFile);String suffixName imageFileFileN…

解析 XML

解析 XML Firefox 可以自动的将当前页面解析为 DOM&#xff08;文本对象模型&#xff09;&#xff0c; 您也可以通过 XML 语句&#xff08;可以是您自己编写的&#xff0c;也可以是您从远端主机得到的&#xff09;来创建DOM。 例子&#xff1a;将一个字符串解析为 XML var xm…

BZOJ4912 SDOI2017天才黑客(最短路+虚树)

容易想到把边当成点重建图跑最短路。将每条边拆成入边和出边&#xff0c;作为新图中的两个点&#xff0c;由出边向入边连边权为原费用的边。对于原图中的每个点&#xff0c;考虑由其入边向出边连边。直接暴力两两连边当然会被卡掉&#xff0c;注意到其边权是trie上lca的深度&am…

网页乱码解决小心得

出现乱码需要检查的项目&#xff1a;数据库编码、文件本身的字符集、html解析的字符集&#xff0c;如若上述项目编码一致仍然出现乱码&#xff0c;查看一下浏览器的编码&#xff0c;如果和设置的不一样说明上述设置有部分未成功&#xff0c;可以尝试使用header&#xff08;&…

https网络编程——如何利用中继证书(凭证)建立客户端证书

参考&#xff1a;如何利用中继证书&#xff08;凭证&#xff09;建立客户端证书 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108226592?spm1001.2014.3001.5502 目录建立客户端证书的前提是要建立中继证书建立客户端证书的具体步骤1、建立一个目录&#x…

分布式一致性协议Raft,以及难搞的Paxos

https://blog.csdn.net/colorant/article/details/73887706转载于:https://www.cnblogs.com/wzj4858/p/10350363.html

ffmpeg的新东东:AVFilter

http://blog.csdn.net/niu_gao/article/details/7219641 利用ffmpeg做图像的pixel format转换你还在用libswscale吗?嘿嘿,过时啦! ffmpeg中有了新东西:libavfilter.使用它,可以完全代替libswscale,并且可以自动完成一些复杂的转换操作呢.libavfilter啊,用了都说好!但就是太复杂…

https网络编程——HTTPS中SSL具体通信过程

参考:HTTPS中SSL是如何进行通信的? 地址:https://qingmu.blog.csdn.net/article/details/108277887?spm=1001.2014.3001.5502 目录 1、https中SSL通讯的前置准备工作2、openssl库相关函数介绍2.1、重要参数讲解3、SSL框架图4、demo4.1、sslserver.c4.2、sslclient.c1、http…

想跟着微软赛跑会累死你

当微软在推出ASP.NET1.1时,就发布了ASP.NET2.0测试版,当微软发布ASP.NET2.0时,又发布了ASP.NET AJAX测试版,当然也有不少人都知道,微软又有准备推出ASP.NET3.0版本的打算. 每一个版本比上一个版本都会有许多应用上的提升,一个重要的问题是:我们需要不需要和微软赛跑? 微软…

2019.2.4 nfs原理和安装实验

NFS 访问一个本地文件还是NFS共享文件对于客户端而言都是透明的&#xff0c;当文件打开的瞬间&#xff0c;内核会作出一个决定&#xff0c;如果是本地文件内核会将本地NFS共享文件内核会将NFS共享文件的所有引用传递给——》NFS客户端枢中 NFS客户端是通过TCP/IP协议及模块向NF…

基本 XAML 语法指南

我们介绍了 XAML 语法规则&#xff0c;以及用于描述 XAML 语法中存在的限制或选项的术语。当出现以下情况时你会发现本主题很有用&#xff1a;不熟悉 XAML 语言的使用&#xff0c;希望加强对术语或某些语法部分的理解&#xff0c;或者对 XAML 语言的工作原理感兴趣&#xff0c;…

https网络编程——如何做web的访问控制机制(ACL)

参考&#xff1a;如何做web的访问控制机制&#xff08;ACL&#xff09;&#xff1f; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108286660?spm1001.2014.3001.5502 目录ACL含义例子具体实现ACL含义 对于一个服务器来说&#xff0c;我们不能让随随便便一…

形容人的内核是什么意思_成语雪泥鸿爪是形容什么的?雪泥鸿爪什么意思?蚂蚁庄园2020年12月10日答案...

斑马线和斑马什么关系&#xff1f;大家都知道斑马和斑马线&#xff0c;但是两者之间有什么关系&#xff1f;蚂蚁庄园12月10日提到了这个问题&#xff0c;我们一起来看看正确答案吧。问题&#xff1a;斑马线和斑马有什么关系&#xff1f;答案&#xff1a;横线酷似斑马纹答案解析…

.Net 2.0里有一个有用的新功能:迭代器

下面内容节选至MSDN2005。迭代器&#xff08;C# 编程指南&#xff09; 迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符&#xff0c;它使您能够在类或结构中支持 foreach 迭代&#xff0c;而不必实现整个 IEnumerable 接口。您只需提供一个迭代器&#xff0c;即…