在应用axios时,留神到配置选项中蕴含params和data两者,认为他们是雷同的,实则不然。

因为params是增加到url的申请字符串中的,用于get申请。

而data是增加到申请体(body)中的, 用于post申请。

比方对于上面的get申请:

axios({    method: "get",    url: "http://www.tuling123.com/openapi/api?key=20ff1803ff65429b809a310653c9daac",    params: {        info: "西安天气"    },})

如果咱们将params批改为data,显然是不能申请胜利的,因为get申请中不存在data这个选项。

总结
1、HTTP申请过程中,get申请:表单参数以name=value&name1=value1的模式附到url的前面;

2、post申请:表单参数是在申请体中,也是name=value&name1=value1的模式在申请体中。
POST表单申请提交时,应用的Content-Type是application/x-www-form-urlencoded,而应用原生AJAX的POST申请如果不指定申请头RequestHeader,默认应用的Content-Type是text/plain;charset=UTF-8。
在html中form的Content-type默认值:Content-type:application/x-www-form-urlencoded
如果应用ajax申请,在申请头中呈现 request payload导致参数的形式扭转了 ,那么解决办法就是:
headers: {'Content-Type':'application/x-www-form-urlencoded'}
或者应用ajax设置:
$.ajaxSetup({contentType: 'application/x-www-form-urlencoded'});