HTTP自定义header引发的生产问题

539 阅读1分钟

今日“喜提”一个生产事故。

情况

情况:调用某些接口时,提示前端抛出的自定义错误信息,并没有真正调用接口。反应过来是在请求拦截器中catch来错误。

接下来就是debugger排查,过程中,突然想起之前迭代时给某些接口添加了自定义header,值是后端返回的一个客户ID,而刚好这个值不一般。

id: "123232\u0000\u0000\u0000"

就是这样header的值导致请求出错,直接在请求拦截器中被前端catch到了。

image.png

看看是啥

\u开头的是一个Unicode码的字符,每一个\u0000都代表了一个空格。也就是这样的数据在请求头中无法正确解析导致的错误。

办法

后端在传送数据的时候,将这些字符给处理掉。