前端只发起了一次请求为什么后端会收到两次?-灵析社区

Frank的私人司机

最近项目中一直会出现一个比较奇怪的现象:偶尔有用户会重复触发某个接口,但是埋点记录能确定在前端的代码里只发起了一次,前端也没重试的机制。从用户的`UA`以及环境找不到共同点,在网上搜了下说有可能是`nginx`的重试机制 [https://www.cnblogs.com/caibaotimes/p/15407971.html](https://link.segmentfault.com/?enc=lnRvmlh1FSpeUig5nyleqg%3D%3D.BBcSODok6kf4Uzk%2BqgQu9y%2B%2B2KDZFScKcej8z2%2FOzf5tyuR4JWqQ%2BwacF5jAQHDHMJZE970iR2RARBvJToqg1w%3D%3D) 我们的项目都是走公司统一的结构、构建以及发布(`react`)所以我想问下 1、怎么确定该项目是否走了`nginx`代理? 2、如果上面的原因真是`nginx`重试导致的,怎么排查? 感谢~

阅读量:182

点赞量:0

问AI
有可能是浏览器的重试机制,也有可能是nginx的重试机制。 排查就是就是每一层加个唯一id。 比如说前端发起的时候加个 "uuid: Math.random()",这样就可以判断是谁发起了多次。 当然也得关注是不是触发了 option 预检请求,出现在跨域时 *** 如果上述你都已经查完了,接下来就是看日志了。比如说 nginx 的 access_log 加上 grep 过滤去找。 也可以试着修改 Nginx 的重试机制。在 Nginx 配置中找到相关的配置项,可能是 proxy_next_upstream 或 proxy_retry 相关的配置。 *** 或许这个是你想要的? "https://stackoverflow.com/questions/15155014/inconsistent-browser-retry-behaviour-for-timed-out-post-requests" (https://link.segmentfault.com/?enc=zi5MfjH%2F%2BH0xtkKttpqHqg%3D%3D.Ph2qWu%2B3MDeAZJvwhl%2BaJFnh2UuVmJnHOgJ5sE73wvukE3N8EP3sPW8y1Cacj0Y2Qm2%2FT%2BO%2F58pmxr%2FkI%2BbiEm47bmTuvjgeB3vHAwh3%2BYNRQ5YTYsjOamw%2F9nGIYwjeI%2Fvw2mlGaxfYQwUXYShAzQ%3D%3D) 更多相关的内容:"https://stackoverflow.com/search?q=chrome+request+retry&s=f8018be9-1a56-4af7-9f42-7125dbc6744e&s=db4e609e-9b53-40d0-a2da-18edeb0d50cb" (https://link.segmentfault.com/?enc=9ertE0VJo1W4KZusVDEPNg%3D%3D.rPHNT7jqlXPI4sQyGcdfre5xXPkwau6JwC7ot%2FuyefBMz4upFzPiip4%2BY%2BwRpSE5cARMA5PeKkR3K3b%2BXNOn7vYlpEnnx7df3n9ru7RN1mBl6PIkKnF1Tsnpwe1Xnnm6X6p530pscVgPSng%2F5%2FaIDleVrrWsF5srG9AuqpJIur6MAohwxP4HoGgEbyvFIxb4)