ajax请求参数丢失部分符号,js jquery-ajax/fetch请求时数据文本丢失加号和连接号的问题...

最近使用原生JS发起加密数据请求时,遇到请求数据的部分符号(“+”、“&”)丢失的问题。如下所示:原始数据:“a+b”,   实际请求数据:“a b”;“&”符号在请求字符串里是链接其他参数的意思;因此数据在不处理的情况下,会丢失符号数据。

因此在我们需要处理可能含有“加号或连接符号”的数据时,一定要加转义处理:window.encodeURIComponent("a+b");

为避免请求时产生类似的问题,尤其是处理加密数据的传输时,我们在js封装请求的时候,可以加上转义的操作后再发送请求。

如下图:

JS-fetch请求数据:

我实际要发起的请求数据为:参数data,数据为:a+b&c_d;   实际上浏览器把data='a b'当成了一个参数,c_d=''当成了一个参数。fetch('/api/adyenpay/pay', {

method: 'post',

headers: {                        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"

},

body: "data=a+b&c_d"

}).then(function (res) {                    return res.json();

}).then(function (data) {                    var dataJson = JSON.parse(data.data);

});

浏览器实际发出的请求数据如下:

b6b2622419be39dbd5b5997a0e076c97.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值