vue體系中axios請求對比jquery-ajax請求

前提

老舊的項目在前端頁面轉(zhuǎn)型為vue框架的時候都應該會思考一個問題:
在請求上是繼續(xù)沿用以前的jquery-ajax肚逸,還是改用與vue搭配的axios

如果你繼續(xù)使用jquery-ajax那么以下的內(nèi)容對你來說就沒什么用處
如果你使用了axios那么你就會可能會碰到他們之間因為細微不同造成的請求失敗問題

以下是我在使用過程中碰到的一些情況和解決方案

1.普通的ajax GET POST請求

兩者之間很相似亲铡,使用起來沒太大區(qū)別
以此為依據(jù)可以得出一個結(jié)論拉背,如果不使用ajax特定封裝方法,兩者區(qū)別應該不大

所以以下描述的所有axios使用方式也可以使用最簡單的ajax加同樣的配置來使用
$.ajax({
    url: "/query?a="+a+"&b="+b,
    type: "GET/POST",
    params:{
    },
    data:{
    },
    success: function(data){

    },
    error: function(xhr,stat,exmsg){
        
    }
});

Axios({
  url:"/query?a="+a+"&b="+b,
  method:"GET/POST",
  params:{
  },
  data:{
  },
}).then(function (response){
  
}).catch(function(error){
  
});

數(shù)據(jù)圖示:


FSLS3KQ%LF($69VXB3[A$LA.png

2.form表單提交

ajax可以直接選取form元素使用ajaxSubmit方式提交表單

//ajax
//url的設置在form元素上
$('#form').ajaxSubmit({
  beforeSubmit: function(data,sender,options) {
  },
  success: function(data) {
  },
  error:function(xhr,stat,msg){
  }
})

//axios
let form = new FormData();
form.append("a",a);
form.append("b",b);
Axios({
  url:"/upload",
  method:"POST",
  headers: {
    'Content-Type': 'multipart/form-data'
  },
  params:{
  },
  data:form
}).then(function (response){
  
}).catch(function(error){
  
});

一般提交都是post請求泪酱,get請求數(shù)據(jù)暴露比較嚴重
傳遞過去的數(shù)據(jù)需要使用FormData對象
需要設置請求頭变骡,總體來說代碼量會大一些

數(shù)據(jù)圖示:
![ZMUWVY0%}@L4VHJLR4@OAI.png

3.文件上傳

ajax可以使用ajaxFileUpload上傳文件

//除了下面這種方式
$.ajaxFileUpload({
  url:'/uploadFiles',
  fileElementId:'id',//對應input元素的id
  type:'POST',
  dataType : 'json',
  secureuri : false,
  success:function(filePaths, status){          
  },
  error:function(xhr, status, e){
  }
});

//axios
var fd = new FormData();
fd.append("mFile",item.file);
Axios({
  url:"/upload",
  method:"POST",
  headers: {
    'Content-Type': 'multipart/form-data'
  },
  params:{
  },
  data:fd ,
  onUploadProgress:function(progressEvent){
    if (progressEvent.lengthComputable) {
      let val = (progressEvent.loaded / progressEvent.total * 100).toFixed(0);
      //item.status = parseInt(val)+"%";
    }
  },
}).then(function (response){
  
}).catch(function(error){
  
});

文件上傳數(shù)據(jù)表現(xiàn)形式與上面描述的form表單上傳一致

4.特殊數(shù)據(jù)格式

Z{TA4XW6MYHBEA9{1(FCVDT.png

如果你看到你之前上傳的數(shù)據(jù)是這種格式
使用ajax可能只是簡單上傳一個數(shù)組衔蹲,但是axios必須特殊處理

//macroPaths是一個簡單的文本組成的數(shù)組
$.ajax({
  url: '/formengineWebService/getFileConvertState',
  type: 'POST',
  dataType: 'json',
  data: {macroPaths:macroPaths},
  success:function(result){
                        
  },
  error: function(xhr,stat,exmsg){
                        
  }
});

//當時用axios時
//應該使用URLSearchParams來組裝數(shù)據(jù)
//至于是否必須如此我不確定肢娘,實測使用這樣的形式是可以的
var form = new URLSearchParams();
//如果是多條需要循環(huán)添加
form.append("macroPaths[]",url);
Axios({
  url:"/query",
  method:"POST",
  params:{
  },
  data:form
}).then(function (response){
  
}).catch(function(error){
  
});

最近新碰到的問題

沒有任何多余設置的axios請求,請求起來傳遞過去的參數(shù)總是多一個括號導致后臺取不到數(shù)據(jù)
然后網(wǎng)上查詢得出結(jié)論 axios的默認請求頭可能是application/json 所以各位如果沒特殊需求可以改一下默認配置或者封裝的時候給他一個默認的和ajax一樣的請求頭

后記

暫時只碰到這幾種對接轉(zhuǎn)換形式舆驶,大致上夠用了橱健,如果以后碰到其他的再來添加
其實這些東西可以簡單封裝一下弄成和jquery類似的方法,那么使用起來應該會簡單很多沙廉,找到對應的方法就行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畴博,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蓝仲,更是在濱河造成了極大的恐慌俱病,老刑警劉巖官疲,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亮隙,居然都是意外死亡途凫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門溢吻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來维费,“玉大人,你說我怎么就攤上這事促王∠耍” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵蝇狼,是天一觀的道長阅畴。 經(jīng)常有香客問我,道長迅耘,這世上最難降的妖魔是什么贱枣? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮颤专,結(jié)果婚禮上纽哥,老公的妹妹穿的比我還像新娘。我一直安慰自己栖秕,他們只是感情好春塌,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著簇捍,像睡著了一般摔笤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垦写,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音彰触,去河邊找鬼梯投。 笑死,一個胖子當著我的面吹牛况毅,可吹牛的內(nèi)容都是我干的分蓖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼尔许,長吁一口氣:“原來是場噩夢啊……” “哼么鹤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起味廊,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蒸甜,失蹤者是張志新(化名)和其女友劉穎棠耕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柠新,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡窍荧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恨憎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕊退。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖憔恳,靈堂內(nèi)的尸體忽然破棺而出瓤荔,到底是詐尸還是另有隱情,我是刑警寧澤钥组,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布输硝,位于F島的核電站,受9級特大地震影響者铜,放射性物質(zhì)發(fā)生泄漏腔丧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一作烟、第九天 我趴在偏房一處隱蔽的房頂上張望愉粤。 院中可真熱鬧,春花似錦拿撩、人聲如沸衣厘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽影暴。三九已至,卻和暖如春探赫,著一層夾襖步出監(jiān)牢的瞬間型宙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工伦吠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妆兑,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓毛仪,卻偏偏與公主長得像搁嗓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子箱靴,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5腺逛? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,513評論 1 45
  • 一衡怀、前言 對于后端開發(fā)來說棍矛,經(jīng)常要和前端進行聯(lián)系的兩個面就是:1安疗、表單form提交至servlet。2茄靠、ajax提...
    7葉閱讀 2,809評論 1 5
  • 靖王老師2017年的第四本書《忙碌爸爸也是好爸爸》茂契,這本書籍是專門為我們的父親量身定制的,內(nèi)容簡單慨绳、詼諧掉冶、有趣,滿...
    帥氣的靖王閱讀 169評論 0 0
  • 01. 2017年8月28日,晴 QQ群里有同學說战秋,七夕可以送女生花 我問他:多少錢一支 他說:不要錢璧亚。...
    溫暖與勇敢閱讀 213評論 0 0
  • 和同事聊天,發(fā)現(xiàn)女人和女人在一起脂信,所聊的少不了公婆癣蟋,少不了婚姻家庭瑣事。的確狰闪,誰沒有一地雞毛呢疯搅?有多少不為人知的痛...
    想飛的樹不如草閱讀 147評論 0 0