1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      axiospost提交formdata的實例

      vue框架推薦使用axios來發(fā)送ajax請求,之前我還寫過一篇博客來講解如何在vue組件中使用axios。但之前做著玩用的都是get請求,現(xiàn)在我自己搭博客時使用了post方法,結(jié)果發(fā)現(xiàn)后臺(node.js)完全拿不到前臺傳來的參數(shù)。后來進(jìn)過一番探索,終于發(fā)現(xiàn)問題所在。

      創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)醴陵,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

      post提交數(shù)據(jù)的四種編碼方式

      1.application/x-www-form-urlencoded

      這應(yīng)該是最常見的post編碼方式,一般的表單提交默認(rèn)以此方式提交。大部分

      2.multipart/form-data

      這也是一種比較常見的post數(shù)據(jù)格式,我們用表單上傳文件時,必須使form表單的enctype屬性或者ajax的contentType參數(shù)等于multipart/form-data。使用這種編碼格式時發(fā)送到后臺的數(shù)據(jù)長得像這樣子

      axios post提交formdata的實例

      不同字段以--boundary開始,接著是內(nèi)容描述信息,最后是字段具體內(nèi)容。如果傳輸?shù)氖俏募€要包含文件名和文件類型信息

      3.application/json

      axios默認(rèn)提交就是使用這種格式。如果使用這種編碼方式,那么傳遞到后臺的將是序列化后的json字符串。我們可以將application/json與application/x-www-form-urlencoded發(fā)送的數(shù)據(jù)進(jìn)行比較

      首先是application/json:

      axios post提交formdata的實例

      接著是application/x-www-form-urlencoded:

      axios post提交formdata的實例

      這里可以明顯看出application/x-www-form-urlencoded上傳到后臺的數(shù)據(jù)是以key-value形式進(jìn)行組織的,而application/json則直接是個json字符串。如果在處理application/json時后臺還是采用對付application/x-www-form-urlencoded的方式將會產(chǎn)生問題。

      例如后臺node.js依然采用之前對付application/x-www-form-urlencoded的方法,那么querystring.parse(decodeURIComponent(data))之后得到的數(shù)據(jù)是這樣子的

      axios post提交formdata的實例

      這個時候再querystring.parse(decodeURIComponent(data)).key只能獲取到undefined

      4.text/xml

      剩下的一種編碼格式是text/xml,這種格式我沒有怎么使用過

      解決方法

      既然我們知道axios post方法默認(rèn)使用application/json格式編碼數(shù)據(jù),那么解決方案就有兩種,一是后臺改變接收參數(shù)的方法,另一種則是將axios post方法的編碼格式修改為application/x-www-form-urlencoded,這樣就不需要后臺做什么修改了。

      先來看第一種解決方法

      vue組件中,axios發(fā)送post請求的代碼如下

      此時控制臺Network Headers里面的信息是這樣子的

      axios post提交formdata的實例

      后臺接收數(shù)據(jù)需要依賴body-parser中間件,我們事先裝好,接著在后臺代碼中引用body-parser

      axios post提交formdata的實例

      這張截圖中,發(fā)揮作用的代碼僅僅是const bodyParser=require("body-parser");

      接下來在路由中使用body-parser

      這時,當(dāng)前臺發(fā)送post請求之后,后臺控制臺中就會打印出req.body

      axios post提交formdata的實例

      這時,通過req.body.name或者req.body.password就能拿到對應(yīng)的值。

      這種方法比較簡單,也不需要前臺做過多修改,推薦使用這種方法。

      第二種解決方法,具體操作如下

      前端

      其中發(fā)揮關(guān)鍵作用的是headers與transformRequest。其中 headers 是設(shè)置即將被發(fā)送的自定義請求頭。 transformRequest 允許在向服務(wù)器發(fā)送前,修改請求數(shù)據(jù)。這樣操作之后,后臺querystring.parse(decodeURIComponent(data))獲取到的就是類似于{ name: 'w', password: 'w' }的對象。

      后臺代碼如下

      這種方法明顯就要比第一種麻煩一點,但不需要后臺做過多處理。所以具體操作還是得根據(jù)實際情況決定。

      以上這篇axios post提交formdata的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。


      分享題目:axiospost提交formdata的實例
      轉(zhuǎn)載來源:
      http://www.ef60e0e.cn/article/ghhjeh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        七台河市| 彰化市| 兰坪| 延安市| 乐平市| 诏安县| 吴堡县| 吉安市| 旅游| 博兴县| 宁城县| 九寨沟县| 舒城县| 祁连县| 磴口县| 大邑县| 北碚区| 葵青区| 新营市| 齐齐哈尔市| 乌兰浩特市| 堆龙德庆县| 依兰县| 金塔县| 交口县| 罗平县| 衡水市| 尉氏县| 美姑县| 读书| 嘉禾县| 盐池县| 元江| 许昌县| 九江市| 洛宁县| 江孜县| 辛集市| 定陶县| 祁阳县| 远安县|