解决客户端AJAX脚本失效或禁用导致显示JSON的问题

今天浏览oschina.net的《网站出bug了??还是被人黑了啊??》发现的这个问题,发表评论采用了Ajax技术,但是直接提交Ajax没有起作用,导致返回了原本由JavaScript处理的JSON结果,出现这种情况多数是因为页面JavaScript加载失败或者用户禁用了脚本所致,回想到我以前的设计,有个小技巧可以解决这个问题,现与大家分享下:

基本思路就是在Ajax提交前加入自定义的HTTP请求header,然后结果处理页判断是否有这个header,如果有就说明对方是通过Ajax提交的数据,显示JSON结果;如果没有则说明Ajax没有起作用,然后就直接输出用户友好的标准结果页。

继续阅读