angular6中将字符串转为html,HttpParams angular 6中的“+”字符转换为空格

这是一个常见的问题。这个

+

URL使用字符分隔两个单词。为了使用

+

参数值中的字符,在将参数值作为URL的一部分添加之前,需要对其进行编码。Javascript/TypeScript提供

encodeURI()

为此目的而发挥作用。

以下是解决此问题的方法:

let mobile = encodeURI("+911234567890");

let text = encodeURI("1 + 2 = 3");

this.updateUser({"name":"ABC","mobile": mobile,"text":text});

public updateUser(myObj) {

const body = new HttpParams().set('user_object', JSON.stringify(myObj));

return this.http.post(url, body, {

headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8')

});

}

或者

您可以对updateUser()方法的内部进行编码:

this.updateUser({"name":"ABC","mobile": "+911234567890","text":"1 + 2 = 3"});

public updateUser(myObj) {

let encodedJson = encodeURI(JSON.stringify(myObj));

const body = new HttpParams().set('user_object', encodedJson);

return this.http.post(url, body, {

headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8')

});

}

或者

使用正则表达式替换

+

发送到服务器之前:

let jsonData = JSON.stringify(myObj);

jsonData = jsonData.replace(/\+/gi, '%2B');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值