問題:使用jquery.form.js實作ajax上傳檔案功能,當服務端傳回json格式的字元串,并且頭資訊是application/json時,用戶端代碼success回調函數無法執行。
原因:由于jquery.form.js在實作ajax上傳檔案時采用了iframe的實作方式,是以用戶端在接收text或html格式的結果時沒有問題。但是當用戶端接收json格式時,就産生了問題。
解決方案:jquery.form.js官方推薦這種情況下服務端需要做些事情,輸出如下格式的json代碼
<textarea>
{"a1":"a1","b1":"b1"}
</textarea>
或者,直接輸出json格式的字元串,但是頭資訊仍然使用plain/text。
參考:http://jquery.malsup.com/form/#file-upload