终于将vue-resource替换成axios了,其中像application/x-www-form-urlencoded发送的头信息以及返回的response结果这两点都需要注意一下。
其实axios官方也有说明。因为我在vue-resource中使用了
这种请求在发送头信息时会将Content-Type改为application/x-www-form-urlencoded,而若使用axios的话,为了达到这种效果作者提供了两种方法。
第一种使用new URLSearchParams(),但是这种方法兼容有点不好。所以我使用的是第二种方法,使用node_modules文件夹中的qs模块。因为我之前已经将ajax请求稍微封装了一下(下面说的代码基本都是在ajax.js中添加的),所以改动其实真不多。
安装axios模块就不说了,先将axios和qs引用进来。
然后将发送的请求参数外面使用qs.stringify进行包裹。
最后将接受的结果,提取正确的字段。(在vue-resource中正文件是response.body,而在axios中正文则是response.data。这个需要注意一下)
其中response中则有一些请求状态等等相关的参数,我这边很少用到,所以就不列出来了。只需上面三步,就完成了vue-resource到axios的转换。同时解决了axios发送x-www-form-urlencoded的需求,特别方便吧~
另外贴上我整个ajax.js文件,中间用到了加密解密,可以无视一下。
可以完善的地方还有很多,欢迎拍砖~