我有一个SpringMVC应用程序,它随机没有返回对AJAX请求的响应。或者更确切地说,它似乎没有返回响应。
在我的网络图表(Chrome或Firefox)中,我看到正在发出GET请求,并且我在服务器端看到正在处理/响应请求的完整堆栈跟踪。但是,由于GET方法永远不会完成,浏览器似乎永远不会收到对请求的响应。
我完全不清楚如何/从哪里开始跟踪它。
我在Tomcat 7.0.42上运行并在正面使用AngularJS。我的防火墙完全停止了,所以我不相信它与阻塞的端口/通信有关。
我在哪里/如何验证是否正在提交响应?此外,如何隔离发生断开连接的位置以及浏览器未收到任何响应的原因?当我通过Postman发出手动请求时,我似乎无法复制这种行为。
我正在开发OSX v10.7.5上的开发工作。
答案 0 :(得分:2)
哇。经过几个小时试图挖掘并找到解决方案后,我安装了Wireshark并决定查看实际的数据包。事实证明,我获得了单次获取的双重请求,但是获得了两个不同的端口。经过进一步检查(检查端口上的监听内容)后,我注意到Sophos Anti-Virus似乎正在拦截请求而没有响应。
我仍然不确定AV在传递请求之前是如何拦截请求的,也不确定它是如何决定中止响应的,但是关闭会造成一个不同的世界。
希望这种学习经历可以帮助其他人,如果他们遇到类似的事情。
答案 1 :(得分:0)
SpringMVC非常坚固,我唯一可以想象的是你的处理程序在某些情况下没有返回响应。在代码中查找不会返回正确响应的条件或异常处理程序。