报错 “Required request body is missing: public“ 的解决方案以及注意点(Vue, axios拦截器)

在使用axios拦截器时,返回500,报了"Required request body is missing: public"的错误,我的拦截器是这么写的,参考了以下链接:

http://www.45fan.com/article.php?aid=1D2dBLoGSZ31XuGv#_label1

我这里的基础地址在我本地换成了接口的域名地址。

import axios from 'axios'
export function request(config) {
  // 1.创建axios的实例
  const instance = axios.create({
    // 设置基础的url配置项,这样接口处的url前面就不用写了
    baseURL: '基础地址', 
    //设置请求超时时间
    timeout: 5000 
  })
 
  // 2.axios的拦截器,用不到的可以忽略这节
  // 2.1.请求拦截的作用
  instance.interceptors.request.use(config => {

    return config
  }, err => {
    console.log('请求拦截err: '+err);
  })
 
  // 2.2.响应拦截
  instance.interceptors.response.use(res => {
    return res.data
  }, err => {
        console.log('响应拦截err: '+err);
  })
 
  // 3.发送真正的网络请求
  return instance(config)
}

然后在api/index.js的文件里面,这样应用的: 

import {request} from '../utils/request'
//get请求
 
export function queryLogistics() {
  return request({
    url: '/接口地址',
    method: 'post',
    header: { 
       'Content-Type': 'application/json'
    } // 已经在request.js里面进行全局设置,也可以在请求里面局部设置其他headers
  })
    //   Content-Type: application/json 
    // : 请求体中的数据会以json字符串的形式发送到后端,这种是axios默认的请求数据类型,我们只需将        参数序列化json字符串进行传递即可,无需多余的配置。
    // Content-Type: application/x-www-form-urlencoded
    // :请求体中的数据会以普通表单形式(键值对)发送到后端
    // Content-Type: multipart/form-data
    // : 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
}

然后报错了, 加了header是因为搜索时候,发现很多朋友都是content-type没确定才报的错,但是我这里加上了之后依旧报错了。之后发现是自己实在粗心,没有把传参需要的data加进去,这里真的很重要!!加上之后就能正常使用了,不加header也可以了(我用的接口可以接受所有type的header)

export function queryLogistics(data) {
  return request({
    url: '/address',
    method: 'post',
    data,
    // header: { // 已经在request.js里面进行全局设置,也可以在请求里面局部设置其他headers
    //    'Content-Type': 'application/json'
    // }
  })

报错 “Required request body is missing: public“ 的解决方案以及注意点(Vue, axios拦截器)_第1张图片

 

注意点:

1. 要写传参

2. post对应的传参是data, get对应的传参是params

3. 仔细查看接口头部需要的type是什么,一共有三种,application/json,application/x-www-form-urlencoded以及multipart/form-data

希望能够帮到大家~

你可能感兴趣的:(Vue,vue,前端)