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

 

瀏覽器實際發出的請求數據如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM