在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于post請求傳參問題請教?

關(guān)于post請求傳參問題請教?

需求:要發(fā)送一個post請求,需要傳給后臺的參數(shù)如圖:
圖片描述

如果我用jquery的post來實(shí)現(xiàn),如圖:
圖片描述

查看network如下:
圖片描述

如果使用axios來請求:
圖片描述

查看network如下:
圖片描述

都是form Data,為什么不一樣呢?用axios請求就不成功,$.post就可以。我看了axios的文檔,需要使用transformRequest來處理一下傳入?yún)?shù)。但是為什么$.post就不用呢?我查了一下別人的解釋,說是什么請求體什么的,不是很懂!誰能給解析一下背后的原理?

回答
編輯回答
瘋子范

axios要多加一個參數(shù)transformRequest通過這個東西來過濾。具體為什么網(wǎng)上說法就很多了。你可以自己查一下

傳送門1
傳送門2

2018年7月15日 14:49
編輯回答
何蘇葉

不使用transformRequest的話,有如下幾種方式

//方式1
var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);
//方式2
var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
//方式3
axios.post(url,
    querystring.stringify(params), {
      headers: {
        'Content-type': 'application/x-www-form-urlencoded'
      }
    })
2017年9月7日 15:34
編輯回答
不討喜

因?yàn)閖query的誕生就是搞兼容的,他不但解決了瀏覽器兼容,還將一些格式做了兼容。比如你這里想用axios的post,使用x-www-form-urlencoded形式,jquery在接收這個格式的時候,對其做了處理,實(shí)現(xiàn)你得知道form-rtlencoded與json的請求形式的區(qū)別:
x-www-form-urlencoded:a=b&c=d;
json:{"a":"b","c":"d"}
也許你已經(jīng)看懂了,axios之所以報錯,是因?yàn)檎埱蟾袷脚c請求數(shù)據(jù)格式不匹配,axios不會自己轉(zhuǎn)換請求數(shù)據(jù)格式,怎么辦?自己轉(zhuǎn)換唄

2017年9月18日 15:35