最近遇到一个很坑的bug,在这里记录下,避免再次踩坑。
问题场景:
Get请求到后台,页面返回406错误码,查看日志,没有报错,但有个奇怪的现象就是,后台接收到请求了,却没有执行相应的sql语句。找不到原因,只好把项目代码拉到本地执行一把,发现页面并没有报错,一切正常。
问题原因:
后来把注意力放在访问地址上,最终发现以文件名后缀结尾的请求地址(比如http://shishi.com.rome.7c.pfa (.pfa就是一种文件格式)),会被浏览器误认为是你要打开文件或者下载文件,解析出来的东西传到后台就无法使用,这就是为啥后台能接收到请求但不执行的原因。
解决办法:两种
- 把get请求换成post请求。
- 在请求地址后拼接一段非文件格式字符串,比如 拼接上.change