909422229_ajaxFileUpload 上傳返回結果docmeent,資料解析失敗的問題
阿新 • • 發佈:2018-12-01
一、ajaxFileUpload 上傳使用。
問題:
檔案上傳成功後無法獲取後臺的資料,返回資料列印是ducment。
事例:一些業務性程式碼已經遮蔽,只展示問題程式碼。
下面程式碼在列印返回的資料不符,後臺成功會返回一個 1的標記,但是列印結果是docment物件。
$.ajaxFileUpload({ type: "post", contentType: "application/x-www-form-urlencoded", url : , data: {}, secureuri:false,//一般設定為false fileElementId:"file1",//檔案上傳空間的id屬性 timeout : 10000, //超時時間設定,單位毫秒 datatype: "text", success: function (data) { console.log(data); if(data == '-1'){ openPublicMessage('提示','重複!'); }else{ openPublicMessage('提示','成功'); } } });
下面是:解決問題後的程式碼如下:
$.ajaxFileUpload({ type: "post", contentType: "application/x-www-form-urlencoded", url : , data: {}, fileElementId:"file1",//檔案上傳空間的id屬性 timeout : 10000, //超時時間設定,單位毫秒 dataType: 'text',//伺服器返回的資料型別。可以為xml,script,json,html。如果不填寫,jQuery會自動判斷。 secureuri: false, //是否啟用安全提交,預設為false。 async : true, //是否是非同步 success: function (data) { if(data == '-1'){ openPublicMessage('提示','重複!'); }else{ openPublicMessage('提示','成功'); } } });
結果:
比較一下,少了一個非同步屬性。印象中昨天弄這個時候寫了這個屬性,但是也沒有成功,所以就刪了。。千奇百怪。
async:補充一下這個屬性的意思,預設值是true,即為非同步方式,$.Ajax執行後,會繼續執行ajax後面的指令碼,直到伺服器端返回資料後,觸發$.Ajax裡的success方法,這時候執行的是兩個執行緒。若要將其設定為false,則所有的請求均為同步請求,在沒有返回值之前,同步請求將鎖住瀏覽器,使用者其它操作必須等待請求完成才可以執行。