ajax里有需要判断反馈的字符串是否为“ok”,在浏览器里调试,看到返回的内容明明是“ok”,但是if(“ok”==data)判断为false,用alert打印内容也是ok,但是打印长度的时候却是3。
于是把返回内容每个字符的16进制打出来
var hexCharCode = [];
hexCharCode.push("0x");
for(var i = 0; i < data.length; i++) {
hexCharCode.push((data.charCodeAt(i)).toString(16));
}
alert(hexCharCode.join(""));
alert(data.length);
发现内容是0xfeff6f6b,ok前面有不可见字符feff,这个是utf的bom头导致的问题,如何解决?看了些资料,很多人是在代码里去做判断,当然这样可以一劳永逸,不过还有一个简单的方法,就是用ultraedit之类的编辑器把php文件另存为utf8-无bom头的文件,然后返回的内容里就不带feff了。