前言

看到类似 http://10.10.10.10/test/path?id=1的url,第一反应就是这个是查询字符串拼接,一般都是用get请求,参数什么的直接跟在uri后面
最近做项目,后端给的接口很怪异,最后请求的url是这种查询字符串式的,但是又规定了查询方式必须是post,我们都知道post请求的参数和值是放在请求体中的,url并不可见

解决

项目是vue搭建,调接口的库也是用到了最通用的axios,特地记录一下
axios post请求参数配置是在配置项data中设置的,如果我们想实现上面的需求,这个时候只要记住,参数设置在params项中,而不是data项中

// request.ts
import axios from 'axios'
const request: any = axios.create({
  baseURL: process.env.BASE_URL,
  timeout: 5000,
})
export const getPath = (params: any={}) => {
    return request({
      url: `http://10.10.10.10/path`,
      method: 'post',
      params: params
    })
}

//index.vue
import { getPath } from 'request.js'
...
methods:{
  getPathWay(){
    getPath({ id:1 }).then((res)=>{
       console.log(res)
    })
  }
}
...
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐