版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u010882234/article/details/88055885
现象
我们项目部署到测试服务器运行一段时间了,突然有个请求返回HTTP 400错误。之前是没有问题的,我在本地调试了下,发现没有这个错误。把出错的url复制后,访问本地启动的项目,也没有问题。这个接口是ajax请求,或者说在url里传递参数,返回报错HTTP ERROR 400。
可能原因
- 有人改动代码,导致bug。
- js里传递的参数名与后端代码方法里的参数名不一致,或者类型不一致。
- get请求,参数过长。
- 特殊字符,防火墙拦截。
解决
- 检查后发现此部分代码没人改动,参数也是对的
- 参数去除一部分后仍然不可以,不是长度的原因
- 排除后发现是"{}"的原因,本地没问题,但是在测试服务器上,做了限制,无法在get请求传递{}字符。换成了其他参数传递后解决。
总结
- 最可能原因是参数名称或类型不匹配
- 可以对参数做处理,再传递。
JSON.stringify(node).replace(/\"/g, "'")
; - 避免在get请求里传递很多参数,避免特殊字符