jQuery.ajax在Chrome中无法正常执行的解决办法
2015-11-29 Shane Jhu
在较新的webkit内核浏览器中使用 $.post/load/get 等方式发送数据至某页面后,无法正常获取返回的内容。直接跳至 .error() 中。
显然 webkit 收到一个错误。
而在 IE/Firefox 中却正常。除了很多人所说的直接在本地运行 html 页面会被浏览器安全拦截的因素外,还有一个重要原因在于服务器端的响应处理(Response),毕竟这种数据获取怎么也是要在 localhost 中测试的吧。
Response.Close():
以 ASP.NET 为例,当你从一个 ASP.NET 服务端用 AJAX 获取内容时,小心使用 Response.Close() 结尾。
这会将所有缓冲数据发送到客户端,而且还发出一个“Reset by peer”信号,关闭 Socket 连接。
IE / FF 就处理得很好,但 Chrome 不能处理,它会在执行“$.ajax”方法去获取数据时.返回一个“an internal Network Error 101”的错误。
如果你在你的服务端代码中不使用“Response.Close()”,$.Ajax 会在 chrome 浏览器中运行得很好。
我将目标页面中的 Response.Close() 改为 Response.End(),问题解决。
参考 http://forum.jquery.com/topic/load-and-ajax-not-working-on-google-chrome
本文由lenashane.com原创,转载请注明出处:查看原文
如果觉得文章还不错,请点个赞吧