如果 HTTP 请求的 ContentType 为 x-www-form-urlencoded,BODY 里传输了一个 Json 字符串,后端解析会有什么问题?
比较常见的一个客户端误用的场景
回答·10
最热
最新
- 我寻思要具体看语言和框架怎么处理,没有通解。 举例来说 req.json 可以抛异常、返回空值、返回错误; 框架内解析 json/form 失败连用户处理的函数都进不去; 或者配了什么奇怪的中间件、反向代理之类的东西,尝试解析表单出错提前返回了,请求连你的服务都没抵达; 可能性很多。
- 面试题吗?个这问?报什么错就有什么问题呗
- 没试过,是不是要转码之后再解 Json。
- 这么简单的问题,三岁小孩都会,你居然还问我?
- 首先这是一个 get 请求没有 body,然后后端没办法接收 body 的值。 设计这种传值方式的本来就是一个错误,后面的只会一直糊墙,直到项目不想维护。
- 为什么非得传一个不匹配的 contentType 呢
- 后端解析会让客户端改成正确的方式。 就算后端能想办法正确解析,这种事也不应该出现。
- 无法解析 应该是拿不到传入的参数
- 如果不考虑安全性,请求头是 GET,获取请求体就有 JSON 长度局限性不会解析。源码层看你是怎么处理的,return null 比较常见。
- 首先,form 表单都是根据 key 获取 value 的表单格式,这种格式下传输 json 需要定义一个 key 并将 json 作为值 value 进行传输即可。你描述的 body 里面直接传 json 因为没有 key,因此按照格式描述去对接是无法接收到数据的