axios传参

https://www.kancloud.cn/yunye/axios/234845 axios参考
1.get(url[, config])post(url[, data[, config]]),注意参数
get是在config中设置params{params:{...} }
post是设置data字段
详细看文档(在post里面用params会把参数放到url里的)

2.headers中的Content-Type,视乎请求方式(GET/POST等)的不同,有不同默认值和处理方式

3.post方式中

// data 是作为请求主体被发送的数据
// 只适用于这些请求方法 'PUT', 'POST', 和 'PATCH'
// 在没有设置 transformRequest 时,必须是以下类型之一:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - 浏览器专属:FormData, File, Blob
// - Node 专属: Stream

content-type默认情况下将被正确设置。其他不合情景的类型由JSON.stringify()处理为字符串,且content-type为application/json。手动设置content-type并不影响这个处理逻辑。

对于data是一个普通对象,想以application/x-www-form-urlencoded正确post传输(即html表单的post提交方式)
简易解决方法:
(1)axios.post('/api/login', 'a=1&b=2' ) 我们自己直接写成符合的字符串
(2)使用URLSearchParams或者qs库进行处理,没啥好办法了。

4.get方式中

// params 是即将与请求一起发送的 URL 参数
// 必须是一个无格式对象(plain object)或 URLSearchParams 对象

get方式通常无需指定content-type,因此控制台中可能看不到application/x-www-form-urlencoded这个。但这里无论是plain object还是URLSearchParams对象,都不会被JSON.stringify()处理,最终均以a=1&b=2这种形式放入url中进行提交。



作者:codeflame
链接:https://www.jianshu.com/p/25048ddfc8d0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2020-12-22 09:51  想学前端的小李  阅读(230)  评论(0)    收藏  举报