axios get和post请求传参格式

简介

使用 axios 请求数据时,分 getpost 两种情况,常规设置为

// http.js
let instance = axios.create({
  baseURL: '',
  timeout: 3000
})

instance.interceptors.request.use(config => {
  return config
})

instance.interceptors.response.use(response => {
  // 处理返回数据 response
})

其中请求头信息我们没有设置,直接采用默认值,一些常用的请求头信息可以查看前端js下载导出不同格式文件,做了一些简单的介绍

调用接口时

const ApiGetData = () => {
  return http({
    method: '', // 请求方法
    url: '', // 请求接口地址
  })
}

get请求参数

query参数

const ApiGetData = params => {
  return http({
    method: 'get', // 请求方法
    url: 'xxx/xx/x', // 请求接口地址
    params
  })
}

在这里插入图片描述

post请求参数

json参数

const ApiGetData = data => {
  return http({
    method: 'post', // 请求方法
    url: 'xxx/xx/x', // 请求接口地址
    data
  })
}

在这里插入图片描述

query参数

如果后端想要在 post 请求的时候也需要 get 那样的参数怎么办,就需要我们将请求参数做进一步改造

instance.interceptors.request.use(config => {
  if(config.method === 'post') {
    config.headers = {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
    config.transformRequest = [function(data) {
      let finalData = ''
      for(let key in data) {
        finalData += encodeURIComponent(key) + '=' + encodeURIComponent(data[key]) + '&'
      }
      return finalData
    }]
  }
  return config
})

在这里插入图片描述

这里如果不设置头信息 headers 也可以,那就是默认值 application/x-www-form-urlencoded,但是如果主动设置 application/json参数就不对了,参数就会是序列化后的 JSON 字符串,试试

instance.interceptors.request.use(config => {
  if(config.method === 'post') {
    config.headers = {
      'Content-Type': 'application/json'
    }
    config.transformRequest = [function(data) {
      let finalData = ''
      for(let key in data) {
        finalData += encodeURIComponent(key) + '=' + encodeURIComponent(data[key]) + '&'
      }
      return finalData
    }]
  }
  return config
})

在这里插入图片描述
虽然在浏览器中看到的头信息都是 application/json,但是请求发出的参数格式是不一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值