上传附件使用jquery-form.js的ajaxsubmit提交一点记录

,,,,,,,,最近项目用到了附件附件上传功能,因为上传附件想尽量控制在一个控件上传附件并回显在下方的列表中,选择附件则触发上传。

,,,,,,,,刚开始使用了swfupload.js的flash控件进行上传,但是在IE中如果没有相应控件就无法画出上传控件,应该是浏览器段没有闪电控件造成的。

,,,,,,,,最后还是改回html的类型=拔募崩词迪稚洗?因为附件上传成功后需要回调函数并在下方列表中回显,所以纯粹的使用形式表单提交无法回调需要的数据。而直接使用js取得输入内容组装为文件对象使用ajax上传,但是js里无法取得完整的文件对象。

,,,,,,,,找了一些,发现jquery-form.js的ajaxsubmit可以上传并回调,在输入的onchange事件时触发方法还是,在方法里取得形式表单,定义选项,然后form.ajaxsubmit(),然后在选择成功的方法里取得返回的数据再把数据值写入下方列表里。

,,,,,,,,刚开始使用谷歌调试时没有任何问题,但是在IE中调试时,附件能传到后台不过在返回数据的时候并不执行成功的方法,也不执行错误方法,只是报的错,诸如“阻止文件下载…”云云,当场愣了,根本无法解释,找了很久也不搞不清楚原因,查了很久,终于找到解决的办法,那就是把返回的数据头改为“text/html”而不是“text/javascript”,这个问题虽然解决了,但很不爽。屎一样的IE

response.setContentType (" text/html ");


解决

,,,, http://forum.jquery.com/topic/file-upload-ajaxsubmit-sends-response-to-wrong-window-in-ie

上传附件使用jquery-form.js的ajaxsubmit提交一点记录