最近做一个ExtJs4.0的文件上传。发现在没有添加 xtype:filefield,   时提交数据form的数据,修改form都能提交,而且返回正常。但是当加入xtype:filefield后,返回的数据就不正常了。但是IE9下正常返回,firefox和chrome下都会报错Uncaught You're trying to decode and invalid JSON String: <pre ></pre>

查了几天问题没找到答案啊。。那个痛苦。。。

今天终于找到了。。。。

查考了http://usenrong.iteye.com/blog/1327724  虽然它的问题和我不一样,但是可以借鉴下

后来把在代码里面加了这句   response.setContentType("text/html; charset=utf-8"); //设置响应类型

然后问题就解决了。。。

之前我也设置了,不过设置的是  response.setContentType("text/json; charset=utf-8"); //设置响应类型

或response.setContentType("application/json; charset=utf-8"); //设置响应类型

 

一直以为是返回的json格式有问题

看了那篇文章后才发现问题。。

引用一下别人的话语   “使用ajaxForm提交表单上传文件后服务器端返回json数据IE浏览器无法解析 ,到后来跟踪一个网站同样地功能才找到问题所在,原来使用ajaxForm,必须以html格式返回json数据. 也就是 response.setContentType("text/html; charset=utf-8"); 这样返回的数据才能被设置到回调函数里面. 而且貌似格式必须是 "key":"value" 也就是双引号,单引号还不行,这算不算一个bug呢?