axios get请求方式设置content-type

链式极昼
• 阅读 4907

在使用axios get请求方式时请求接口返还中文乱码,设置content-type尝试解决时,发现不起作用,查了一些资料发现get请求时,axios内部在判断get请求时给删掉了

/ Add headers to the request
    if ('setRequestHeader' in request) {
      utils.forEach(requestHeaders, function setRequestHeader(val, key) {
        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
          // Remove Content-Type if data is undefined
          delete requestHeaders[key];
        } else {
          // Otherwise add header to the request
          request.setRequestHeader(key, val);
        }
      });
    }

给出的解决方法是为data 赋值以避免axios给删除掉,如下:

// http request 拦截器
axios.interceptors.request.use(
  (config) => {
    config.params = config.params || {}
    if (!config.params._v) { // eslint-disable-line
      config.params._v = String(Math.random()).slice(0, 10) // eslint-disable-line
    }
    if (typeof window === 'undefined') { config.url = config.url.replace(/^https/, 'http') }
    if (config.method === 'get') {
      config.data = true
    }
    config.headers = {
      'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
    }
    return config
  },
  error => Promise.reject(error)
)

虽然成功设置了请求头,但是中文乱码暂未解决。最后,使用自定义方法transformResponse暂时解决,如有更好的解决方式烦请留言,谢谢。

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
vue axios get请求参数为json对象 而非字符串形式
axiosget请求方式传递给后台的参数都是字符串下形式,无法传递json对象或数组对象等post请求方式则可以实现,但若后台接口要求必须用get方式传递对象给后台,需要装插件
Wesley13 Wesley13
4年前
GET请求中文乱码
今天碰到一个问题,就是GET请求接收到的数据中中文总是乱码web.xml配置<!过滤字符集<filter<filternameencoding</filtername<filterclassorg.springframework.w
Stella981 Stella981
4年前
Linux模拟HTTP请求
一个简单的GET请求使用curl命令可以轻松发起一个HTTP请求:使用GET凡是请求网址curlhttp://www.baidu.com可以使用X选项指定请求方式携带参数的POST请求下面演示一个带头部和参数的POST请求curlXPOST\'http://u
Stella981 Stella981
4年前
SpringBoot HTTP接口 GET请求
1\.普通传参@RequestMapping(path"/{city_id}/{user_id}",methodRequestMethod.GET)publicObjectfindUser(@PathVariable("city_id")StringcityId,
Easter79 Easter79
4年前
SpringBoot解决跨域的问题
最近用Axios做get请求时发现前台报XMLHttpRequestcannotloadhttp://127.0.0.1:8080/sayHello.No'AccessControlAllowOrigin'headerispresentontherequestedresource.Origin'http://127.0.
Stella981 Stella981
4年前
SpringBoot解决跨域的问题
最近用Axios做get请求时发现前台报XMLHttpRequestcannotloadhttp://127.0.0.1:8080/sayHello.No'AccessControlAllowOrigin'headerispresentontherequestedresource.Origin'http://127.0.
Stella981 Stella981
4年前
GET请求传递中文参数出现乱码问题(适用于Tomcat服务器)
   中文参数乱码的问题,归根到底就是编码与解码时格式不一致导致的。要解决这类问题,首先就得分析前台传参是以什么格式对请求进行编码的,后台再以相应的格式进行解码就可以了。    Tomcat的默认编码是ISO88591,当Tomcat收到GET请求时,它会使用ISO88591对请求进行编码,因此Java后台在接收这些中
liam liam
2年前
使用 Axios 请求库:简单易学的基础指南
Axios是一个流行的基于Promise的HTTP请求库,用于在浏览器和Node.js中进行HTTP请求。它提供了简单易用的API,可以发送各种类型的请求(如GET、POST、PUT、DELETE等),并处理响应数据,Axios在前端工程化项目中有99%的
liam liam
2年前
全面解读 Axios 的 GET 请求:最佳实践
在进行网络请求时,是一个非常常用的请求库。本文将介绍如何使用axios发起GET请求,并详细列出传参的几种写法。同时会提供一个实践案例,其中包含基本路由与请求处理的过程,并确保在IDE编辑器中可以顺利运行。什么是axios的GET请求?在开始之前,让我们简
四、飞鹅后端管理系统API接口文档
接口列表1.服务健康检查请求方法:GET请求URL:/api/health请求参数无返回结果json"code":1,"message":"success"2.用户登录请求方法:POST请求URL:/api/admin/access/login请求参数(f
五、飞鹅官网API接口文档
接口列表1.获取网站信息请求方法:GET请求URL:/api/site/getSiteInfo请求参数无返回结果json"code":1,"data":"id":1,//id"title":"SampleSiteName",//网站名称"intro":"T