注意:axios 0.22.0(不太准确)版本在delete方法中,在config中配置data属性不能上传payload数据,可以使用axios.request()替代方法
例如,这种情况可能不起作用: export const LOGIN_OUT= (data: object) => { return http.delete(API.SESSION,{data}) }
原因是: GET,DELETE方法: 即axios中常见的get/delete请求,又称query请求。 例如: export const GET_ANNOTATION_LIST = (params: object) => { return http.get(API.ANNOTATION_LIST, { params })}///这可以要求export const GET__LIST = (data: object) => { return http.get(API.LIST, { data })}///这个不能要求,也不能发送负载数据
因为get和delete方法的第二个参数是config,所以我想在上面使用它。传输值时,需要使用config中的data字段,但有些版本不支持这样写。那怎样写呢?
axios可以使用.request()替代方法 export const LOGIN_OUT= (data: object) => { return http.request({ url:API.SESSION, method:"delete", data:data })}
为什么需要这样写,axios库的设计,这和http请求规范的restful标准有关。如果你感兴趣,你可以设计规范来遵守标准。这个请求的语义。事实上,从http报文的角度来看,他们都是一样的。没有区别,每个人都可以发送相同的信息。我也可以做你能做的事。不同之处在于method所代表的请求的语义。以及各种库对这个语义的强制性。