😭后端非要POST请求把参数拼URL上?用这个配置秒解决!

6 阅读1分钟

今天写接口对接的时候突然发现一个问题:明明是 POST 请求,F12 也就是看不到 URL 上的参数,只能在 Payload 里看。🧐

通常这是规范的操作,但有时候会遇到一些特殊情况:
1️⃣ 后端老接口不仅要 Body 传参,URL 上也要参数。
2️⃣ 为了方便直接复制 URL 给别人复现问题。
3️⃣ 特殊的缓存机制需要 URL 包含参数。

扒了一下封装的 Axios 代码(Vben/通用封装),发现竟然藏着一个神仙配置项:
✨ joinParamsToUrl ✨

💻 代码坐标:
在 createAxios 或者 requestOptions 配置里。

❌ 默认情况:
joinParamsToUrl: false
参数全部放在 Request Body 里,URL 干净清爽。

✅ 开启之后:
joinParamsToUrl: true
即使是 POST 请求,Axios 也会自动把 params 里的对象序列化拼接到 URL 后面!

🐛 避坑指南:
如果不开启这个,不管你怎么传 params,POST 请求的 URL 永远是不带问号参数的。如果你对接的接口报“参数丢失”但 Body 里明明有值,快去检查一下是不是后端只接收 Query 参数!