Vue在手机上请求post报错

题目描述

报错:"undefined is not an object (evaluating 'e.params.systemTag=p')"
我在axios里面这样封装了一下,在浏览器调试没有问题,到了手机就出现标题上面的报错,导致post请求就报错,get在手机正常,有懂的大佬帮忙解答一下吗?
代码如下

题目来源及自己的思路

这边是根据环境变量增加一个不同的标示

相关代码

let systemTag = ''
// 区分 不同系统传不同参数 类似 type 的作用
switch (process.env.VUE_APP_OVER_LOAD) {
  case 'one':
    systemTag = '1'
    break
  case 'two':
    systemTag = '2'
    break
  default:
    systemTag = '1'
}
axiosX.interceptors.request.use(
  function (config) {
const { url, method } = config
// 外部接口不需要此参数
const apiStr = '/asset-inspection'
if (url.includes(apiStr)) {
  // 所有请求 都在 url 上加上 systemTag
  console.log('axiosaxiosaxios', { config }, systemTag)
  // console.log('config.data', config.data)
  // config.params.systemTag = systemTag
  if (method === 'post') {
    console.log('我是post请求',config.data)
    config.data.systemTag = systemTag
  } else if (method === 'get') {
    console.log('我是get请求',config.params)
    config.params.systemTag = systemTag
  }
}
// 在发送请求之前做些什么
return config
 },

你期待的结果是什么?实际看到的错误信息又是什么?

解决报错问题,可以成功请求post请求

阅读 1.4k
1 个回答

根据报错信息看,config.params.systemTag = systemTag这句有问题。
你的那些console打印出来的都是什么啊?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题