jQuery AJAX无法解析JSON数据
今天遇到一个很奇怪的问题,使用jQuery Ajax请求JSON数据,Firefox下一切正常,Internet Explorer下无法正常工作,错误是parsererror。
另外写了一个测试文件,用jQuery写最简单的Ajax请求和响应,结果一切正常。
这令我百思不得其解,JSON数据是用PHP的json_encode()函数编码的,照理不应该还有这么严重的bug吧。jQuery也是一直在改进,如果还存在这样的bug也很难理解。
又怀疑是IE缓存问题,可是清了好几遍缓存都是一样的结果。
将响应的数据格式改为HTML类型后,alert出来一切正常,难道返回的JSON数据有问题?
于是新建HTML文件,将生成的JSON代码贴入,保存时Dreamweaver提示编码有问题。仔细检查了一遍,没发现特殊的字符。
我突然想起,会不会是含有不可见字符?用smart sniff查看请求,响应消息中果然有不明字符串。那一定是BOM!Windows下的很多编辑器就常干这种事情,自动给文件加上BOM标记。
使用Notepad++将文件编码修改为不带BOM的UTF-8格式后,再次测试,一切正常。
分类: JavaScript