zoukankan      html  css  js  c++  java
  • 上传File时,浏览器总是添加<pre>的解决办法

           在使用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") })
  • 相关阅读:
    Python Challenge 第十二关
    Python Challenge 第十一关
    Python Challenge 第十关
    Python Challenge 第九关
    Python Challenge 第八关
    Python Challenge 第七关
    zepto
    zepto
    zepto
    zepto
  • 原文地址:https://www.cnblogs.com/kaka/p/3115744.html
Copyright © 2011-2022 走看看