这两天学习vue写demo,没有服务器,便抓了网易新闻的数据。vue cli3.0 + 官方推荐的axios,设置了一下代理,十分方便的在dev环境下请求到了数据。然而还没来得及高兴:
惊了!什么情况?!去网易新闻官方的页面看来下,原来人家的是GBK页面,不是utf-8的,而axios默认是utf-8。
一开始认为,设置请求头,使服务器返回contentType为 'application/x-www-form-urlencoded;charset=utf-8',网上大部分文章也是这么说的。
那就改一下吧?然后一天的时间过去了...emmm....说起来你可能不信,据网上的大牛说axios的源码中,对get请求设置进行了很不友好的生硬处理,使之一切对get请求头的设置无效!这个bug据说存在了很长时间了,下面是github issues关于它的描述
https://github.com/axios/axios/issues/362
英文不是很好,用的翻译功能看的。
试了很多帖子中的方法,包括什么:params.inCharset='utf-8',params.outCharset='utf-8'
还有设置headers里加上'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
以及添加请求拦截器什么的,各种方法我都试了,然而对我