axios使用sm2加密數據后請求參數多了雙引號解決方法

axios使用sm2加密數據后請求參數多了雙引號解決

  • 背景
  • 問題描述
    • 解決過程

背景

因項目安全要求,需對傳給后端的入參加密,將請求參數加密后再傳給后端
前期將axios降低到1.6.7后解決了問題,但最近axios有漏洞,安全要求對版本升級,問題需要繼續解決。
果然,技術棧不解決遲早會有問題。。。

問題描述

升到穩定版本后,在瀏覽器網絡請求參數上發現加密后的參數加上了雙引號
在這里插入圖片描述
后端的日志也能看出來多了雙引號,導致后端解密失敗
在這里插入圖片描述

正常的請求參數是不帶雙引號的
在這里插入圖片描述

解決過程

  1. 一開始想將content-type轉為text傳給后端,但是此路不通,會導致后端無法接收參數,只能傳json格式
Content-Type: application/json
  1. 那就轉換思路,看axios是在什么地方將字符串添加了雙引號的,于是在github上找到下面代碼,解決問題
    代碼段來自于別人的提交記錄,親測有效
const instance = axios.create({transformRequest: function transformRequest(data, headers) {// doesn't apply the default transformRequest if the data is a string, so that axios doesn't add quotes see :// https://github.com/usebruno/bruno/issues/2043// https://github.com/axios/axios/issues/4034const hasJSONContentType = () => {const contentType = (headers && headers['Content-Type']) || '';return contentType.indexOf('application/json') > -1;};if (typeof data === 'string' && hasJSONContentType()) {return data;}axios.defaults.transformRequest.forEach((tr) => tr(data, headers));}});

相關細節可查看
https://github.com/axios/axios/issues/4034
https://github.com/usebruno/bruno/pull/2449

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45163.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零開始[進階版]深入學習圖像分類:使用Python和TensorFlow

引言 圖像分類是計算機視覺中的一個核心任務,廣泛應用于人臉識別、自動駕駛、醫療影像分析等領域。在本篇文章中,我們將深入探討圖像分類的原理和實現,使用Python和TensorFlow搭建一個完整的圖像分類系統。本文不僅適合初學者,也…

【Qt 初識 Test】用圖形化和代碼的方式實現簡單的Qt程序

文章目錄 1. 通過圖形化的方式實現🍎2. 通過代碼的方式實現 1. 通過圖形化的方式實現🍎 在界面創建出一個控件,顯示 hello world,通過拖拽的方式實現; widget.ui文件如下:🔍 生成的 ui_widget.…

生物環保技術有哪些缺點或者局限性呢

生物環保技術,作為一種利用生物學原理和技術來處理環境污染的方法,雖然具有綠色環保、高效節能等優點,但也存在一些缺點和局限性。以下是對這些缺點和局限性的詳細分析: 一、受環境因素影響大 生物環保技術的效果往往受到環境因…

數據結構第18節 散列表 - 應用

散列表(Hash Table),也被稱為哈希表,是一種數據結構,它通過使用哈希函數將鍵映射到數組的某個位置來實現快速查找。散列表通常提供平均時間復雜度為O(1)的查找、插入和刪除操作,這使得它們在處理大量數據時…

【mybatis】mybatisX插件概述

一、主要功能 智能補全與提示 MyBatisX 可以智能地提示和補全 SQL 語句中的關鍵字、表名、列名等信息,從而顯著提高開發效率。代碼生成器 雖然 MyBatisX 本身可能不直接提供一個完整的、獨立的代碼生成器,但它可能集成了或支持與其他代碼生成工具&#…

鹵味江湖中,周黑鴨究竟該抓住什么賽點?

近年來,鹵味江湖的決斗從未停止。 隨著休閑鹵味、佐餐鹵味等細分賽道逐漸形成,“鹵味三巨頭”(周黑鴨、絕味食品、煌上煌)的牌桌上有了更多新對手,賽道變擠了,“周黑鴨們”也到了轉型關鍵期。 這個夏天&a…

MySQL字符串相關數據處理函數

目錄 1. 轉大小寫 2. 截取字符串 sunstr 3. 獲取字符長度 4. 字符串拼接 concat 5. 去掉空白 trim 1. 轉大小寫 轉大寫:upper() 轉小寫:lower() 雖然MySQL不嚴格區分大小寫,但是我們還是需要掌握這種大小寫的操作以方便學習其他…

python的入門知識(下)

目錄 學習內容數字字符串、列表和元組映射和集合類型 學習內容 數字 長整型(Long Integer): 在Python中,整數沒有大小限制,但是可以用大寫或小寫的L來表示長整型,盡管這不是Python 3推薦的做法。 復數(Co…

Nessus相關

tenable 1 安裝nessus scanner 1 )安裝nessus scanner: 方法一 curl -H X-Key: xxxxx https://cloud.tenable.com/install/scanner?namescanner-name&groupsscanner-group | bash方法二: **# for ubuntu, its https://www.tenable.com/downloads/api/v1/pu…

【JavaScript腳本宇宙】JavaScript 庫概覽:數字、貨幣值、日期時間處理一網打盡

簡化數據處理:掌握六大 JavaScript 庫的核心功能和使用技巧 前言 在現代的軟件開發中,處理數字、貨幣和日期時間是非常常見的需求。為了簡化這些任務,開發人員可以使用各種 JavaScript 庫來輕松地進行數字格式化、貨幣計算和日期時間操作。…

Google登錄時人機身份驗證的圖片類型和通過的經驗建議,以及一些常見問題

很多朋友在登錄谷歌賬號時,都遇到過要求人機身份驗證的步驟,而且有一些時候人機身份驗證這個步驟很讓人糾結,甚至壓根就出不來具體的驗證圖片,或者花了十幾分鐘、幾十分鐘都過不去。 所以今天GG賬號服務就來為您解析一下谷歌登錄…

初學SpringMVC之接收請求參數及數據回顯

pom.xml 文件導入 lombok 的依賴 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency> Controller 表示這是一個控制器 RequestParam 表示從前端接收…

夏日智啟:我的Datawhale AI夏令營探索之旅

前言 最近幾年&#xff0c;AI&#xff08;人工智能&#xff09;的發展呈現出了前所未有的迅猛勢頭&#xff0c;其影響力和應用范圍不斷擴大&#xff0c;深刻地改變著我們的生活、工作和社會結構。尤其是AI大模型技術&#xff0c;國內外可謂是“百模大戰”&#xff0c;百舸爭流…

github恢復碼怎么備份

https://docs.github.com/zh/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods

最強文本編輯器 VIM 指令大全

Vim 是從 Vi 編輯器發展出來的一款極其強大的文本編輯器&#xff0c;它保留了 Vi 編輯器的所有功能&#xff0c;并添加了許多新特性。Vim 具有代碼補全、語法高亮、錯誤跳轉、批量化處理等編輯功能&#xff0c;還支持異常豐富的插件擴展&#xff0c;且整個編輯全程可通過鍵盤完…

谷歌插件之一鍵關閉同域名頁面

歡迎來到我的博客&#xff0c;代碼的世界里&#xff0c;每一行都是一個故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交給時間 &#x1f3e0; &#xff1a;小破站 谷歌插件之一鍵關閉同域名頁面 前言項目結構mainfest.jsonbackgroud.js 項目實現效果展示展望 前…

13019.CUDA問題積累

文章目錄 1 內存不斷增長的問題1.1 主機從GPU拷貝內存1.1.1 htop 內存增長到一定階段后&#xff0c;保持穩定 1.2 GPU拷貝到Host修改之后內存穩定無變化1.3 結論 2 主機與GPU數據拷貝方案2.1 cudaMemcpy 拷貝內存2.2 cudaMemcpyAsync 異步數據拷貝2.3 采用多線程拷貝技術2.3.1 …

群主必學!輕松Get如何解散微信群的技巧

作為一個微信群的群主&#xff0c;解散群聊可能是你需要掌握的重要技能之一。不管是因為群聊的目的已經達成&#xff0c;還是因為群成員過少或不活躍&#xff0c;了解如何解散微信群都能幫助你更好地管理你的群聊。 如何解散微信群&#xff1f;本文將為您提供一些簡單易行的技…

代碼隨想錄算法訓練營第五十天| 739. 每日溫度、496.下一個更大元素 I、503.下一個更大元素II

739. 每日溫度 題目鏈接&#xff1a; 739. 每日溫度 文檔講解&#xff1a;代碼隨想錄 狀態&#xff1a;不會 思路&#xff1a; 這道題需要找到下一個更大元素。 使用棧來存儲未找到更高溫度的下標&#xff0c;那么棧中的下標對應的溫度從棧底到棧頂是遞減的。這意味著&#xff…

Redis數據同步

文章簡單介紹基于redis-shake的redis數據同步&#xff0c;該工具基于每個節點同步數據&#xff0c;即每個主節點需同步一次&#xff0c;才能完成整個redis集群的數據同步。 1、redis節點操作 ### 查看redis版本 ./bin/redis-server --version### 登錄redis ./bin/redis-cli -…