2013-05-30

Nginx 499 错误码以及 AJAX 调用失败

Views: 22724 | Add Comments

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;
});

Related posts:

  1. Prado 中解决 Ajax 中文乱码问题
  2. 消除JavaScript闭包的一般方法
  3. Nginx + PHP 配置和启动脚本
  4. 开发爬虫友好的Ajax网站
  5. 初学者的 Linux 安装 Nginx PHP fpm 配置教程
Posted by ideawu at 2013-05-30 11:02:20 Tags: , ,

Leave a Comment