Nginx 的 499 响应错误码是 Nginx 自定义的, 并不是 HTTP 标准所定义, 499 对于 Nginx, 表示服务器还没有把所有数据发送给客户端(浏览器), 浏览器就主动中断了连接.
最近, 在一个项目中遇到这个问题. 这是一个 AJAX 功能, 网页在点击 a 标签后, 向服务器发起了一个 AJAX 请求. 这个功能在 Firefox, Chrome 等浏览器中都正常, 在 IE8 下也正常, 但是, 当网页被嵌入到一个软件的浏览器控件里时, 就失败了. 浏览器总是返回 499. 网页代码如下:
<a class="mybutton">Click Me</a> $('a.mybutton').click(function(){ // ajax });
后来, 才发现这是低版本 IE 的一个 bug, IE 中断了事件响应函数里的异步请求. 要解决, 必须在事件处理函数里返回 false. 将上面的代码改成如下就正常了:
<a class="mybutton">Click Me</a> $('a.mybutton').click(function(){ // ajax return false; });