vue为什么get请求参数在开发环境没有了,本地就没有问题, if (config.method === 'get') { if(config.params){ console.log(config.params,'config.params'); const entries = Object.entries(config.params); // 过滤掉属性值为空字符串的属性 const filteredEntries = entries.filter(([key, value]) => value !== null&&value !== undefined); // 将过滤后的数组转换回对象 const params = Object.fromEntries(filteredEntries); // const params =lodash.pickBy(config.params,item=>item); const encodedParams = new URLSearchParams(params); // 将编码后的查询参数赋值给原先的params config.params = encodedParams; } config.paramsSerializer = function (params) { return qs.stringify(params, { arrayFormat: 'repeat'}) }代码是这样的
时间: 2024-02-10 18:29:36 浏览: 25
根据你提供的代码,可以看出在get请求的情况下,对config.params进行了处理,具体处理步骤如下:
1. 将config.params转换为一个entries数组,其中每个元素是一个[key, value]的数组。
2. 使用filter方法过滤掉属性值为空字符串的属性,得到一个filteredEntries数组。
3. 使用Object.fromEntries方法将filteredEntries数组转换回对象,得到params对象。
4. 使用URLSearchParams对象将params对象进行编码。
5. 将编码后的查询参数赋值给config.params。
6. 使用qs.stringify对config.params进行序列化,其中使用了{ arrayFormat: 'repeat' }选项。
根据你的描述,在本地环境中这段代码正常运行并且get请求参数没有问题,但在开发环境中get请求参数消失了。可能的原因有以下几种:
1. 开发环境的配置不同:开发环境和本地环境可能有不同的配置文件,这些配置文件可能会影响到请求参数的处理逻辑。你可以检查一下开发环境的配置文件,看是否有对请求参数处理的相关配置。
2. 请求拦截器的影响:在开发环境中可能存在自定义的请求拦截器,该拦截器可能会对请求参数进行处理或者过滤。你可以查看一下是否有相关的拦截器代码。
3. 后台服务的差异:开发环境和本地环境可能连接的是不同的后台服务,这些服务可能对请求参数有不同的处理逻辑。你可以与后台开发人员沟通,了解一下后台服务对请求参数的处理方式。
需要注意的是,以上只是一些可能的原因,具体原因还需要根据你的具体环境和代码进行分析。希望这些信息能对你有所帮助!