我向来的观点,IE就是个奇葩。

服务器返回json,chrome处理得好地地,但IE却奇葩地向你请求是否要保存这个JSON文件?

之所以出现这种弱智现象,是因为IE无法识别一个所谓的响应头部:application/json

那如何处理?这样子:

服务器端:

        public ContentResult OperateResult(bool ok = true,string msg = "保存成功")
{
return new ContentResult
{
ContentEncoding = Encoding.GetEncoding("utf-8"),
//ContentType = "application/json",//IE说它不认识
ContentType = "text/plain;charset=UTF-8",
Content = $@"{{""ok"" : ""{ok.ToString().ToLower()}"",""message"" : ""{msg}""}}"
};
}

前端:

$('#mainForm').ajaxSubmit(
url: "@url",
dataType: 'json',//<---------------
type: 'post',
success: function (data) {
if (data.ok == "true") {
toastr.success(data.message);
} else {
toastr.error(data.message);
}
},
error: function (e) {
toastr.error(e);
}
});

其他什么在服务器ContentType = "text/html",然后客户端 $.parseJSON(xhr.responseText); 都是扯蛋。

=====================================

事实上,在服务器端(C#)这样写,存在同样的问题:

        public ActionResult OperateResult(bool ok = true,string msg = "保存成功")
{
return Json(new {ok = ok,message = msg });
}

======================================

在 asp.net搞的WebApi里面,通常以json格式返回给前端。那么在服务器端索性将消息头部类型设为JSON方式:

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));//改为JSON方式

因为 IE可以识别 “text/html” ,所以没有上面这个问题。但由于更改了返回格式,所以想返回页面已经不可能。不过,既然是WebAPI,谁要页面呢?

服务器返回JSON,IE出现下载问题的更多相关文章

  1. 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON

    RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...

  2. Spring MVC 返回Json IE出现下载

    今天在做一个利用IFrame提交进行form提交表单的时候发现返回的json在ie下竟然弹出了下载的提示, 于是就查看了返回的Content-type:appliation/json;charset= ...

  3. 使用 jQuery.TypeAhead 让文本框自动完成 (三)(服务器返回 JSON 复杂对象数组)

    项目地址:https://github.com/twitter/typeahead.js 直接贴代码了: @section headSection { <script type="te ...

  4. Mui.ajax请求服务器正确返回json数据格式

    ajax: mui.ajax('http://server-name/login.php',{ data:{ username:'username', password:'password' }, d ...

  5. WebLoad 解析服务器返回的JSON格式内容

    服务器返回Json格式的响应内容经常是以 String (txt) 形式返回给客户端.客户端需要把 文本形式的内容还原为Json格式以进一步做处理(如,取得返回内容的一个值作为下个请求的一个输入).这 ...

  6. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  7. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  8. Struts2返回JSON数据的具体应用范例

    早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...

  9. JavaWeb 返回json数据的两种方式

    1.说明 由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明: A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述! 2. ...

随机推荐

  1. NYOJ 232 How to eat more Banana

    How to eat more Banana 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 A group of researchers are designing ...

  2. Clickomania(区间DP)

    描述 Clickomania is a puzzle in which one starts with a rectangular grid of cells of different colours ...

  3. 【JavaScript 12—应用总结】:弹出登录框

    导读:上篇博客中,做好了个人中心的下拉菜单,这次,将做每个网站都会有的一个登录功能,以此类推,可以做出别的想要的弹出框,如错误提示啦,或者注册. 一.实现分析 首先:和下拉菜单一样,需要通过CSS样式 ...

  4. SQL2012 分页(最新)

    --提取分页数据,返回总记录数 ALTER procedure [dbo].[sp_Common_GetDataPaging_ReturnDataCount] ( @SqlString varchar ...

  5. 移动端没有session怎么处理

    (转:https://my.oschina.net/wanglihui/blog/150726) 手机客户端与服务器端的通信,不同于浏览器与服务器端的通信.浏览器和服务器端的通信依靠session去维 ...

  6. Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成"

    在iOS上开发视频操作的时候,出现错误: 录制视频错误:Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成" Us ...

  7. VMware---之网卡设置

    闲来无事,扯点皮,详细说下NAT配置过程 NAT全称Network Address Translation网络地址转换,顾名思义,配置的重点也是地址转换. 步骤1.配置局域网段及网关 打开vmware ...

  8. poj 1031 多边形对点(向周围发射光线)的覆盖

    Fence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3018   Accepted: 1010 Description ...

  9. msp430入门学习43

    msp430的其他十一 msp430入门学习

  10. 关于 thinkPHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback

    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback 关于thinkPHP rpc调 ...