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);
                });

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

(0)

相关推荐

  • 使用AJAX获取Django后端数据

    使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器.但是如果我们只想更新页面的一部分,则不必完全重新渲染页面-这时候就要 ...

  • python接口自动化37-模拟ajax异步请求(X-Requested-With:XMLHttpRequest)

    前言 有些接口请求头部带上X-Requested-With:XMLHttpRequest ,返回数据是 json .如果头部不加这个参数,返回数据是普通 html 文本. 这种头部带上X-Reques ...

  • 【jvm】运行时数据区笔记

    运行时数据区包含5个部分: 程序计数器:可以理解为存放当前线程执行的字节码的行号. 虚拟机栈:在每个方法被调用时,都会在虚拟机栈里存放一个栈帧,里边存放了局部变量表.操作.方法出口等内容. - 本地方 ...

  • 案例 | 九章云极DataCanvas RT 助力城商行联盟及成员行实现实时数据工程

    经典案例 山东省城市商业银行合作联盟有限公司(以下简称联盟)2008 年经原中国银监会批准成立,是目前全国唯一持有金融牌照的中小银行金融科技服务公司,秉承"赋能中小银行 简单金融科技&quo ...

  • 浅析软件成本评估时数据功能识别规则

    软件成本评估时关于如何识别数据功能,其规则如下: 1.识别计数范围内所有逻辑相关且用户可以识别的数据或控制信息: 2.排除不被任何应用维护的实体: 3.分组实体依赖的相关实体: 4.排除代码数据实体: ...

  • Java 虚拟机运行时数据区详解

    本文摘自深入理解 Java 虚拟机第三版 概述 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟 ...

  • excel表格数据文本型-如何找出EXCEL表格中文本格式的数字

    栏目:Excel表格 日期:2020-06-26 Excel文本型和数值型有什么区别 一.指代不同 1.文本指的是TXT等文本数据. 2.数值型:是表示数量以进行数值运算的数据类型. 二.处理方式不同 ...

  • Skill883:如何避免Excel中输入公式时变成文本?

    作者:牛闪闪  公众号:职场王者(zloffice) 昨天一个小伙伴发我一个表格,我在里面计算了一下,结果发现居然是这样的. 秦老师看在眼里,居然公式变成了文本?解决问题的思路是Excel坏了?NON ...

  • jquery获取框值的数据,收藏一下吧

    效果图: html代码: <!DOCTYPE html> <html> <head> <title></title> <meta ch ...