今天在用jQuery插件AjaxFileUpload實現ajax文件上傳時,遇到一個問題,如圖:
老是運行error。無法運行succes方法,追蹤ajaxfileupload.js源代碼發現:
當運行if(type=="json") eval("data = "+data);會拋出異常,導致在處理異常的時候將status = "error" 因此一直運行error方法。
上網查詢,得知eval函數是用來運行一段js代碼,而並非如我所想的反解json串eval("data = "+data);的意思是將data 賦值給 data參數,
可是當我返回給頁面的是一個簡單的字符串。比方"true" 。時,這樣寫就拋出異常。最后改為 eval("data = \" "+data+" \" ");即將返回的數據用雙引號引起來當作字符串,然后賦給data。
最終成功了