最近忙于加班,昨天也不例外,晚上九点过用Chrome测试了一下,发现个问题。
就是:在IE、FF下正常的AJAX请求,在Chrome下却取不到任何数据。
前端看不出任何问题,于是就在后台加个断点进行了跟踪。果不其然发现了问题。
当后台在经过HttpResponse 的Flush()和Clear()后,经过Close()的调用,前端就请求结束了。于是把这个方法给去掉了,然后前台在Chrome下就得到了正确的数据了。今天查了一下这个方法,才知道是怎么回事。
MSDN是这样说的,Close用于断开客户端的连接。网上有人给出用End这个方法来替代Close,因为End用于结束当前页面的执行。Close是服务器主动断开连接,然后设置客户端断开连接的标志,没有其它的操作。而End会再次Flush当前的内容,然后设置页面结束的标志,然后触发EndRequest事件,并且不是立即断开客户端的连接。
看来Chrome对这个处理方式还是跟其它浏览器还是不一样的。