vue2项目-request配置put请求Content-Type为x-www-form-urlencoded

在项目中遇到需要使用put请求的接口, 使用的方式是x-www-form-urlencoded

在这里插入图片描述

步骤梳理—在项目的request.js文件是默认配置了json方式的

import axios from "axios"

axios.interceptors.request.use(function (config) {
	console.log(config)
    // 请求头配置带token
    const token = sessionStorage.getItem('token_kpi')
    if(token) {
        config.headers.Authorization = token
    }
    return config
}, function(error) {
    return Promise.reject(error)
})

控制台打印结果如下

在这里插入图片描述

可以看到在headers里的Content-Type为null

解决问题思路-1: 当发起put请求时, headers里的Content-Type的值需要改为application/x-www-form-urlencoded

request.js添加代码

axios.interceptors.request.use(function (config) {
    const token = sessionStorage.getItem('token_kpi')
    if(token) {
        config.headers.Authorization = token
    }
    
    if(config.method === 'put') { // 判断如果是put请求, 配置content-type
        config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    }else {
        config.headers['Content-Type'] = 'application/json'
    }
    console.log(config)
    return config
}, function(error) {
    return Promise.reject(error)
})

这里用conifg.method判断当时put请求时,
给config.headers里面的Content-Type赋值 ‘application/x-www-form-urlencoded’

这时候config打印到控制台可以发现

在这里插入图片描述

headers里面的Content-Type的值变为application/x-www-form-urlencoded
并且其它接口请求类型不受影响

解决问题思路-2: 直接修改封装的接口api.js文件

// 修改密码
export function changePassword(data) {
  return request({
    url: 'xxx/member/updatePwd',
    headers: { // 修改请求头
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'put',
    data
  })
}

本文以学习记录为主

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值