設置axios格式為form-data


最近在參與一個項目過程中遇到一個問題,相信大部分人都遇到過:

在后端與前端約定好application/json格式傳遞數據時,因為后台是go強類型語言,在定義api接口時,某些字段要求是整型類型,但是對於前端來說輸入框或者從url中的search取到的參數都是字符串,不得不進行前端類型轉換。

咋一看,對於接口參數比較少的api前端轉換沒有什么,但是對於一般的交互復雜,參數比較多的接口,要對大部分參數進行類型轉換就是一種吃力不討好的活。好在后端同學還支持另一種的前后端數據交互格式,即multipart/form-data。通過該格式后端取到前端傳遞的數據就是數字了(即使前端傳遞的是字符串),而不像json格式獲取的是字符串。這樣,就不需要額外對前端獲取的數據進行特殊轉換了。下面就來說說form-data。

multipart/form-data是基於post方法來傳遞數據的,並且其請求內容格式為Content-Type: multipart/form-data,用來指定請求內容的數據編碼格式。

const instance = axios.create({
    baseURL: "https://api.it120.cc",

    //設置axios為form-data
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    transformRequest: [function (data) {
        let ret = ''
        for (let it in data) {
            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
        }
        return ret
    }]
})


免責聲明!

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



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