问题描述:
在做g*j*j*项目的时候出现了线上环境一个接口的详情页body丢失问题,
可是在开发环境和测试环境却能正常运行,该接口使用的post请求;
通过日志知道后端服务器发送给前端服务器的body是有数据的。
经查阅和推理得出以下论断:
1. get请求不带body,而post请求带body和content_length;
按理说后端是已经接收到了前端的数据,所以这一段不会出现丢失的情况。
2. 然后后端改为支持get和post,前端改为get请求进行线上环境测试;
结果前端可以成功拿到后端响应的响应体。
3. 首先明确controller返回是有数据的一点,可能的情况有:
① 后端服务器响应给前端服务器时,http解析(content_length)出现的body丢失。
② 前端服务器发送数据给app端时,http解析(content_length)出现的body丢失。
然后根据我方app在运行该项目时一切正常,而第三方app出现上述问题的情况下;
可以论断解析问题出现的环节在第②点上;而get可以post不行的情况可以尝试--
通过修改响应报文头的(content_length)置为nil来解决nginx可能带来的影响。
参考博客:
1.https://blog.csdn.net/sxy_94/article/details/74910970,
2.https://blog.csdn.net/u013623958/article/details/79375952,
3.https://ask.csdn.net/questions/183132,
4.https://blog.csdn.net/zifengye520/article/details/53241272