上傳File時,瀏覽器總是添加
的解決辦法


       在使用Structs的FileUpload組件進行上傳文件的時候,在返回的JSon字符串里面總是莫名其妙的添加了<pre>標簽,例如返回內容為"{\"message\":\"導入文件已成功\",\"result\":\"OK\"}",在瀏覽器里面就變成了"<pre style="word-wrap: break-word; white-space: pre-wrap;">"{\"message\":\"導入文件已成功\",\"result\":\"OK\"}"</pre>",這樣就導致Ajax解析返回值的時候出現錯誤。

         我的上傳代碼,默認總是進入到error的處理中。

         

 jQuery.ajaxFileUpload({
            type:"POST",
            url:"/****/upload.action?file="+fileName,
            secureuri:false,
            fileElementId:"upload",
            dataType: "json",
            success:function (data, status) {
                if (data != null) {
                    data = JSON.parse(data);
                    MBJ.alert("提示", data.message);
                } else {
                    MBJ.alert("提示", "上傳文件出錯, 服務器返回錯誤信息: status = " + status);
                }
            },
            error:function (data, status, e) {
                MBJ.alert("提示", "上傳文件出錯: status = " + status);
            }
        });

      谷歌了一圈之后,發現很多人和我是一樣的,解決辦法都是把response的返回類型設置為【text/html】。在Struts2中需要在Action的配置中這樣設置。

  

<result name="success" type="json">
                <param name="root">msg</param>
                <param name="contentType">text/html;charset=UTF-8</param>
            </result>

     如果用的是annotation的方式的話,需要加上這句話

 @Action(value = "upload", results = { @Result(name = SUCCESS, params = { "root", "msg", "contentType",
            "text/html;charset=UTF-8" }, type = "json") })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM