您好,登錄后才能下訂單哦!
最近項(xiàng)目用到了附件附件上傳功能,因?yàn)樯蟼鞲郊氡M量控制在一個(gè)控件上傳附件并回顯在下方的列表中,選擇附件則觸發(fā)上傳。
剛開始使用了swfupload.js的flash控件進(jìn)行上傳,但是在IE中如果沒有相應(yīng)控件就無法draw出上傳控件,應(yīng)該是瀏覽器段沒有flash控件造成的。
最后還是改回html的type="file"來實(shí)現(xiàn)上傳,因?yàn)楦郊蟼鞒晒笮枰卣{(diào)函數(shù)并在下方列表中回顯;所以純粹的使用form表單提交無法回調(diào)需要的數(shù)據(jù)。而直接使用js取得input內(nèi)容組裝為file對(duì)象使用ajax上傳,但是js里無法取得完整的文件對(duì)象。
找了一些,發(fā)現(xiàn)jquery-form.js的ajaxsubmit可以上傳并回調(diào),在input的onchange事件時(shí)觸發(fā)方法uploadFile,在方法里取得form表單,定義options,然后form.ajaxsubmit()。然后在options的success方法里取得返回的data再把data值寫入下方列表里。
剛開始使用谷歌調(diào)試時(shí)沒有任何問題,但是在IE中調(diào)試時(shí),附件能傳到后臺(tái)不過在返回?cái)?shù)據(jù)的時(shí)候并不執(zhí)行success方法,也不執(zhí)行error方法,只是報(bào)錯(cuò),諸如“阻止文件下載。。?!痹圃?,當(dāng)場(chǎng)愣了,根本無法解釋,找了很久也不搞不清楚原因,查了很久,終于找到解決的辦法,那就是把返回的數(shù)據(jù)頭改為"text/html"而不是"text/javascript",這個(gè)問題雖然解決了,但很不爽。屎一樣的IE
response.setContentType("text/html");
解決來源:
http://forum.jquery.com/topic/file-upload-ajaxsubmit-sends-response-to-wrong-window-in-ie
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。