荣蓝科创 2024-06-21 12:57 采纳率: 0%
浏览 9

get参数由合并在一起的,变成分的了。

get参数由合并在一起的,变成分的了。

通过Get方法传递的参数。

axios.get(url, {
    params: {
        Filters: {"QLikes":{"KeyVal":[{"Field":"CfgKey","Val":"pd"}]}}
    }
}).then(function (res) {
     do……
})

正常应该是这样的,

Filters:{"QLikes":{"KeyVal":[{"Field":"CfgKey","Val":"pd"}]}}

结果在谷歌浏览器中查看载荷的参数信息现在变成了(Edge浏览器也是同样的问题)

Filters[QLikes][KeyVal][0][Field]:CfgKey

Filters[QLikes][KeyVal][0][Val]:pd

然后接收参数就不对了。

同样的系统,同样的代码,线上的就正常,本地的就有问题了。

怀疑是系统参数哪里设置的问题,不是代码的问题。谁遇到过,麻烦给指导下。。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-21 12:57
    关注

    引自免费微信小程序:皆我百晓生

    你遇到的问题可能是由于本地环境与线上环境在处理HTTP请求的参数解析上存在微小的差异。具体可能的原因可能包括但不限于:服务器端的参数解析逻辑、本地开发环境的配置等。由于问题可能涉及到多个方面,我会尝试给出一些可能的解决方案和建议。

    首先,确保你的本地环境和线上环境使用的是相同的软件和库版本,特别是关于HTTP请求的库,如axios。因为不同版本的库可能会在处理某些细节上存在差异。你可以尝试更新本地的库到最新版本,看看问题是否得到解决。

    其次,确认你的后端服务器是否能正确处理嵌套的参数结构。根据你给出的例子,你正在试图传递一个嵌套的JSON对象作为GET请求的参数。不同的后端框架或服务器可能对这样的参数处理方式有所不同。如果你的后端服务器期望的是平铺的参数(例如,期望Filters[QLikes][KeyVal][0][Field]Filters[QLikes][KeyVal][0][Val]这样的结构),那么你需要调整你的前端代码来匹配这种结构。

    另外,检查你的本地开发环境是否有任何特殊的配置或设置可能会影响HTTP请求的行为。例如,某些代理服务器、中间件或本地开发服务器可能会有自己的参数处理方式。

    如果上述方法都不能解决问题,你可以尝试通过修改前端代码来适应后端服务器对参数的期望格式。虽然这可能并不是理想的解决方案,但它可以帮助你确定问题的根源是前端还是后端。例如,你可以尝试将嵌套的参数结构扁平化,然后看看后端是否能正确接收和处理这些参数。

    最后,如果问题仍然存在并且你无法确定问题的根源,你可能需要联系你的后端开发人员或者系统管理员,看看他们是否能提供关于为什么本地环境和线上环境在处理HTTP请求参数上存在差异的更多信息。他们可能可以通过检查服务器日志或检查特定的配置设置来帮助你找到问题的根源。

    总的来说,这个问题可能需要你进行一些调查和尝试来解决。希望这些建议能帮助你找到问题的解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 6月21日
  • 创建了问题 6月21日