前端encodeURIComponent和后端http_build_query的差异 作者:七棵菜 日期:2022-11-30 栏目:计算机分类:1 人气:277 前后端分离编程时,在请求接口的时候,通常需要做参数签名,那么如果是对参数编码的话,前后台编码方法通常是有一些细微差异的,但是这足以使签名算法不一致,从而导致签名错误。 下面介绍一种前端使用`typescript`,后台使用`php`的签名一致算法 #### typescript ``` # 拼接参数 sign += '&' + key + '=' + fixedEncodeURIComponent(params[key]); # 参数加密 function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return '%' + c.charCodeAt(0).toString(16); }); } ``` #### php ``` // 前后台签名算法必须保持一致 $params = http_build_query($data,'','&',PHP_QUERY_RFC3986); ``` ### 鸣谢 - [博客园**Loweringye**](https://www.cnblogs.com/loweringye/p/6016817.html) 标签: urlencode encodeURIComponent 上一篇:如何使用mvn命令导入依赖 下一篇:lnmp环境安装php扩展 随便看看 2024-02-19 PHP7 运算符“??” 和“?:”的区别 2022-11-30 Linux 后台运行命令 2022-11-25 关于我们 2022-11-30 centos一键系统安装lnmp集成环境 2022-11-30 linux 生成 ssh 公钥 留言