最近使用jQuery的ajaxFileUpload插件来做ajax文件上传。文件上传没有遇见问题,但是接受从服务器端响应的json总是报SyntaxError: missing } in XML expression的错误.. 起初IE和FireFox都报.. 后来只有firefox报错..
之后使用firedebug跟踪了一下返回的数据, 发现responseText中被加上了<pre></pre>标签... 但是在IE中没有<pre>标签。 很有可能是<pre></pre>惹的祸..
在调用eval前添加如下代码,将<pre></pre>去掉,问题搞定!
if(data.indexOf('<pre>') != -1) {
data = data.substring(5, data.length-6);
}
eval("data=" + data);
PS: 折腾人这么长时间!! 浏览器兼容问题实在 XXXX 了!!