返回Json数据浏览器带上<pre></pre>标签解决方法
来源:互联网 发布:网络防御技术 编辑:程序博客网 时间:2024/06/05 08:55
返回Json数据浏览器带上<pre></pre>标签解决方法
问题: 当后台获取到前台传来的文件时(例如上传功能, 导入功能), 返回类型为application/json, 这个时候响应到前端的JSON格式的数据格式可能是:
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"JsonKey":"JsonValue"}</pre>
这个是不同浏览器对返回数据处理的问题。
解决方法:
1. 在前端解决
var reg = /<pre.+?>(.+)<\/pre>/g; var result = data.match(reg); data = RegExp.$1;
或者
data=data.replace(/<.*?>/g, '');
data就是后台返回前端的数据, 用正则表达式处理一下即可。
2. 在后台解决
将返回的类型从application/json改为text/html
这个解决方法因为每个系统后台采用Struts或者SpringMVC不同可能处理有点不一样在此就不举例了。
上传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") })
- 返回Json数据浏览器带上<pre></pre>标签解决方法
- 返回Json数据浏览器带上<pre></pre>标签解决方法
- 返回Json数据中带有<pre></pre>标签解决方法
- ajaxfileupload返回的json数据带<pre></pre>标签
- ajaxFileUpload返回的json数据带<pre>标签,导致无法执行success后面的代码
- ajaxfileupload 返回json解析出错 带有<pre>标签
- ajaxfileupload返回json带<pre>
- 后台程序返回的json值包含<pre></pre>
- <pre>标签
- <pre>标签
- pre标签
- pre标签
- json返回值存在<pre style="word-wrap: break-word; white-space: pre-wrap;">的解决方法
- <pre></pre>预格式化标签
- ajax 返回值 pre 标签的问题解决
- 关于浏览器自动加上<pre>标签
- 多浏览器Pre标签兼容样式
- ajaxfileupload返回json带<pre>解决方案
- 小程序开发中踩的坑
- string类函数总结(转载)
- android如何设置一开始先加载LoginActivity(登陆)页面而不是MainActivity主页面
- java对象序列化和反序列化(serializing)
- 二维数组传参做形参
- 返回Json数据浏览器带上<pre></pre>标签解决方法
- 网络应用的Socket API编程的基本调用流程
- hdu--改革春风吹满地
- Ubuntu16.04 下安装和卸载Google Chrome
- 文章标题
- 【2017.12.9】8.String to Integer(atoi) 字符串到整数
- 求两个整数的最小公倍数与最大公约数
- 10.消息总线(bus+rabbitmq)
- [JavaScript,ES6]函数声明提升和预解析的总结和试验