日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Axios GET 不能设置Content-Type

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Axios GET 不能设置Content-Type 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在與后端的項目對接中,接口工具使用了axios這個東西。怎么說那 ,反正有很多坑,在后端的請求中要設置GET 請求中要設置header中的Content-Type為application/json; charset=utf-8

我目視了兩秒鐘很簡單的嘛

var $http = axios.create({baseURL: url,headers: {'Content-Type': 'application/json; charset=utf-8'}... })

灑灑水啦 ,是不是很容易

然后。。然后。。我艸what fuck,一看請求中header中沒得這個玩意兒,但是除了Content-Type都是可以設置的

此時此刻一萬句mmp要將,百度一大推也都沒啥用

然后本人就去讀了一哈源碼,npm包中的源碼 axios/lib/xhr.js,寫了什么,我艸 他寫了什么

118------129行

// Add headers to the requestif ('setRequestHeader' in request) {utils.forEach(requestHeaders, function setRequestHeader(val, key) {if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {// Remove Content-Type if data is undefineddelete requestHeaders[key];} else {// Otherwise add header to the requestrequest.setRequestHeader(key, val);}});}

然后看這個if判段, 嗶了狗了

然后就有那么幾個解決辦法,下面我寫一寫哈

  • 方法一
//修改這段代碼// Add headers to the requestif ('setRequestHeader' in request) {utils.forEach(requestHeaders, function setRequestHeader(val, key) {//if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {// Remove Content-Type if data is undefined//delete requestHeaders[key];//} else {// Otherwise add header to the requestrequest.setRequestHeader(key, val);//}});}

好了,行了行了,現在可以了

  • 方法二
    我們不能隨隨便便改人家的npm包啊,萬一下次別人安裝的時候那不是又要去改,咋辦呢,看下面這個方法
var $http // 添加一個新的axios實例 $http = axios.create({baseURL: url,headers: {'Content-Type': 'application/json; charset=utf-8'} }) // 添加請求攔截器 $http.interceptors.request.use(function (config) {// 在發送請求之前做些什么// 隨便寫個值 繞過if判段if (config.method == 'get') {config.data = true}config.headers['H-TOKEN'] = '111'return config; }, function (error) {// 對請求錯誤做些什么return Promise.reject(error); });

現在哥哥告訴你,隨便在get請求中設置header那還不是簡簡單單的事情

axios這么做的原因, 是因為GET請求本身是不需要Content-type,塔屬于簡單請求


現在去官網提個bug看看他們會采納

總結

以上是生活随笔為你收集整理的Axios GET 不能设置Content-Type的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。