上传附件使用jquery-form.js的ajaxsubmit提交一点记录
2015-01-25 21:04
453 查看
最近项目用到了附件附件上传功能,因为上传附件想尽量控制在一个控件上传附件并回显在下方的列表中,选择附件则触发上传。
刚开始使用了swfupload.js的flash控件进行上传,但是在IE中如果没有相应控件就无法draw出上传控件,应该是浏览器段没有flash控件造成的。
最后还是改回html的type="file"来实现上传,因为附件上传成功后需要回调函数并在下方列表中回显;所以纯粹的使用form表单提交无法回调需要的数据。而直接使用js取得input内容组装为file对象使用ajax上传,但是js里无法取得完整的文件对象。
找了一些,发现jquery-form.js的ajaxsubmit可以上传并回调,在input的onchange事件时触发方法uploadFile,在方法里取得form表单,定义options,然后form.ajaxsubmit()。然后在options的success方法里取得返回的data再把data值写入下方列表里。
刚开始使用谷歌调试时没有任何问题,但是在IE中调试时,附件能传到后台不过在返回数据的时候并不执行success方法,也不执行error方法,只是报错,诸如“阻止文件下载。。。”云云,当场愣了,根本无法解释,找了很久也不搞不清楚原因,查了很久,终于找到解决的办法,那就是把返回的数据头改为"text/html"而不是"text/javascript",这个问题虽然解决了,但很不爽。屎一样的IE
response.setContentType("text/html");
解决来源: http://forum.jquery.com/topic/file-upload-ajaxsubmit-sends-response-to-wrong-window-in-ie
刚开始使用了swfupload.js的flash控件进行上传,但是在IE中如果没有相应控件就无法draw出上传控件,应该是浏览器段没有flash控件造成的。
最后还是改回html的type="file"来实现上传,因为附件上传成功后需要回调函数并在下方列表中回显;所以纯粹的使用form表单提交无法回调需要的数据。而直接使用js取得input内容组装为file对象使用ajax上传,但是js里无法取得完整的文件对象。
找了一些,发现jquery-form.js的ajaxsubmit可以上传并回调,在input的onchange事件时触发方法uploadFile,在方法里取得form表单,定义options,然后form.ajaxsubmit()。然后在options的success方法里取得返回的data再把data值写入下方列表里。
刚开始使用谷歌调试时没有任何问题,但是在IE中调试时,附件能传到后台不过在返回数据的时候并不执行success方法,也不执行error方法,只是报错,诸如“阻止文件下载。。。”云云,当场愣了,根本无法解释,找了很久也不搞不清楚原因,查了很久,终于找到解决的办法,那就是把返回的数据头改为"text/html"而不是"text/javascript",这个问题虽然解决了,但很不爽。屎一样的IE
response.setContentType("text/html");
解决来源: http://forum.jquery.com/topic/file-upload-ajaxsubmit-sends-response-to-wrong-window-in-ie
相关文章推荐
- AJAX提交表单后要清空,否则再次提交原来的数据会认为重复提交,提交失败。使用ajaxSubmit 函数需要引入jquery.form.min.js 文件
- jQuery使用ajaxSubmit()提交表单示例==引入jquery.form.js插件(专门提交表单)
- 使用 jquery.form.js插件上传带有附件的表单
- jQuery.form.js使用ajaxSubmit()提交表单时返回中文乱码的问题
- 【文件上传】使用jquery.form.js来实现表单提交
- 关于使用jquery.form.js上传文件同时提交表单的方法
- MVC4中使用Jquery.Multifile.js和Jquery.form.js一次上传多个文件
- ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法
- jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传。
- 使用jQuery.form插件实现表单异步提交+上传文件
- 使用jquery.form.js实现无刷新上传文件
- MVC4中使用Jquery.Multifile.js和Jquery.form.js一次上传多个文件
- 基于jQuery通过jQuery.form.js插件使用ajax提交form表单
- 使用jquery.form.js实现图片上传的方法
- Play FrameWork 使用jquery.form.js实现无刷新提交带文件的表单
- 用jquery.form.js 实现ajax提交含有上传文件和普通字段的表单
- jquery.form.js的ajaxSubmit使用
- jquery.form.js------ajaxSubmit提交实例
- 使用jQuery.form插件实现表单异步提交+上传文件
- 使用jquery.form.js+servlet实现文件异步上传