服务器安装.NET Framework 4.5、客户端Ajax POST在IE下出现无响应问题
开发人员反映原有一个功能在点击修改提交表单后,浏览器就无响应,除非关闭。之前开发、测试服务器所做的更新只有安装了.NET Framework 4.5,由于之前博客园的dudu也碰到过相同类似问题(http://www.cnblogs.com/dudu/archive/2012/09/14/ie_mvc_dotnet_4_5.html),立刻推断出状况几乎一致。开发人员在满足特定条件后调用form.submit函数,紧接着Ajax POST数据验证,而理由是认为form.submit会强制中断之后的javascript代码执行。问题代码如下:
if (...) form.submit(); $.post(...);
用httpbasicwatch查看整个提交过程,form.submit后,Ajax POST依然执行,服务器返回500错误,请求状态为aborted。推测就是因为保持连接后,form.submit终止这个连接,Ajax POST则想继续使用这个连接,提交到服务器后处理线程已被终止。使用Ajax GET、Ajax POST紧接着Ajax POST没有问题、在chrome、firefox问题代码的Ajax POST请求不会由于中断导致浏览器无响应。