[原创]ASP.NET MVC异步提交表单firefox下返回json结果带pre标签的问题

今天为了一个小问题纠结了一天,需求如下:

1.需要异步提交表单上传图片并保存到数据库,返回json数据给前台动态处理

问题描述:提交表单后,返回的json数据无法用eval进行序列化,总是提示无效字符,用firebug查看返回数据中加了pre标签

问题原因:

jax返回的内容,居然自动添加了<pre>标签

在FF,ie,谷歌浏览器中,每个返回的都不一样:ff小写,ie大写,谷歌加style

查了一下,原来是返回的类型不对。

1,页面开头中<meta http-equiv=”Content-Type” content=”text/html ;charset=utf-8″ />

2,在action中Struts2Utils中,如果用renderText 方法,那么里面调用的是render(“text/plain “, text, headers);

这样返回的就是”text/plain”,所以自动添加了pre。修改成调用renderHtml ,就能正常使用了

对照上面的问题原因:

查找发现是上传文件时将 System.Web.HttpContext.Current.Response.ContentType = “text/plain”;修改了

导致作为文本返回了加入了pre

应该修改为“text/html”

上传完文件后,修改了ContentType=”text/html”,如下:

this.HttpContext.Response.ContentType = “text/html”;

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏