ajaxSubmit上传文件返回结果是下载action文件
2013-12-18 13:27
274 查看
在ajaxSubmit提交表单的配置里面,增加一个参数,服务器端判断是否是ajaxSubmit提交过来的表单,是的话就返回“text/html”类型的内容,不是就可以返回“application/json”的。
把文中注释的代码换成response.setContentType("text/html;charset=UTF-8")代码即可。
从网上找到的说法是:ajaxSubmit会创建隐藏iframe提交的表单,如果服务器返回的是“application/json”类型的数据,IE和Chrome默认是下载文件的,因为内容是返回给了iframe,而不是ajaxSubmit的success方法。在iframe加载了返回结果后,ajaxSubmit的success方法是去读取iframe的内容来转换成json对象使用。
在ajaxSubmit提交表单的配置里面,增加一个参数,服务器端判断是否是ajaxSubmit提交过来的表单,是的话就返回“text/html”类型的内容,不是就可以返回“application/json”的。
public void write(String msg,HttpServletResponse response) throws Exception { PrintWriter write = null; //response.setContentType("application/text;charset=UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); try { write = response.getWriter(); write.write(msg); write.flush(); } catch (IOException e) { throw new Exception("ajax write error" + e.getMessage()); } finally { response = null; if (write != null) write.close(); write = null; } }
把文中注释的代码换成response.setContentType("text/html;charset=UTF-8")代码即可。
从网上找到的说法是:ajaxSubmit会创建隐藏iframe提交的表单,如果服务器返回的是“application/json”类型的数据,IE和Chrome默认是下载文件的,因为内容是返回给了iframe,而不是ajaxSubmit的success方法。在iframe加载了返回结果后,ajaxSubmit的success方法是去读取iframe的内容来转换成json对象使用。
相关文章推荐
- fmpeg交叉编译到tiny6410
- sql之left join、right join、inner join的区别
- linux系统性能监控命令iostat(三)
- Jquery页面跳转
- WdatePicker.js方法
- ubuntu安装google 输入法
- C# 在Sharpdevelop 中使用资源文件
- wikioi-天梯-提高一等-棋盘dp-1169:传纸条
- java ResultSet使用
- how to study jquery
- Gitlab搭建
- C#遍历DataSet数据的几种方法总结
- JMS消息类型--ActiveMQ学习之六
- 谷歌2013年搜索热榜 全球榜曼德拉抢榜首 中国区小爸爸第一
- [gcc] Cannot allocate memory [resolved]
- 判断字符串中是否含有汉字及其汉字的个数
- 微观架构及宏观架构
- radio,checkbox的选中
- SQL注入过滤单引号是否无解
- wx处理鼠标事件