【发布时间】:2022-11-19 09:56:40
【问题描述】:
此问题仅适用于我们在一个环境中的 Spring Boot 服务器的几个实例。服务器在三个不同的环境 (DEV/TEST/PROD) 中运行多个实例。以下情况在 DEV 和 PROD 以及本地都可以正常工作。它在测试中不起作用。
搜索最后带有“+”的用户名未被我们的服务器正确解码。前端的 axios GET 调用发出搜索请求,如下所示:
搜索参数:username+
GET 请求看起来像这样:https://tst.blackrock.com/atmosportal/api/search?search=username%2B
在所有其他环境中,我们的 Spring Boot 控制器能够立即将请求参数 %2B 解码为 +。因此该服务将按预期搜索 username+。然而,在我们的测试环境中,它搜索username%2B。
知道为什么会这样吗?
【问题讨论】:
-
最好提供minimal reproducible example。否则很难回答你的问题。
-
如果您确定相同的构建已部署到与其他环境一样的 TEST,那么我会开始怀疑是您服务器前面的某些东西导致了问题。负载均衡器,也许?您确定在每个环境中都以相同的方式发出请求吗?
标签: javascript spring-boot uri decode urlencode