Axios PUT请求headers配置失败原因及参数位置疑问
Axios PUT请求添加headers的问题解析
第一种写法失败的原因
Axios的put方法参数规则是:put(url[, data[, config]]),三个参数分别对应:
- 请求URL
- 请求体数据(PUT/PATCH这类请求用来提交的主体内容)
- 配置对象(包含headers、params等请求配置项)
你第一种写法里,把{ headers: {...} }放在了第二个参数的位置,Axios会把这个对象当成请求体数据发送给后端,而不是解析成请求配置,自然headers不会生效。
第二种写法生效的逻辑
第二个参数传空对象{},是因为PUT请求如果不需要提交请求体,就用空对象占位,让Axios识别第三个参数为配置对象,这样里面的headers才会被正确添加到请求头里。
配置对象(第三个参数)支持的常用参数
除了你知道的params(URL查询参数),还有这些常用配置:
headers:请求头配置,比如Authorization、Content-Type等timeout:设置请求超时时间,单位毫秒,比如timeout: 5000表示5秒超时withCredentials:跨域请求时是否携带Cookie,布尔值,比如withCredentials: trueresponseType:指定响应数据类型,可选值有'json'(默认)、'blob'、'text'等validateStatus:自定义判断请求是否成功的状态码规则,比如validateStatus: status => status >= 200 && status < 400transformRequest:请求发送前对数据做转换的函数,比如处理请求体格式transformResponse:接收响应后对数据做转换的函数,比如统一处理响应结构
内容的提问来源于stack exchange,提问作者LYJC
相关产品推荐
相关产品推荐

