今天遇到一个问题
aps.net MVC+Jquery+ajaxSubmit
在ie8兼容模式下面 出现 返回json直接在客户端弹出一个下载框,不执行请求成功的的拓展方式。
 var mainform = $("#form2");
            mainform.ajaxSubmit({
                dataType: 'script',
                success: importSuccess,
                beforeSubmit: function (formData, jqForm, options) {
                },
                beforeSend: function (a, b, c) {
                    LG.showLoading('正在上传...');
                },
                complete: function () {
                    LG.hideLoading();
                },
                error: function (result) {
                    LG.tip('发现系统错误 <BR>错误码:' + result.status);
                }
            });
控制器上传xls 返回指定格式的json
 [HttpPost]
        public JsonResult SMSTemplates() {
            HttpPostedFileBase file= Request.Files[0];
            String path =  Server.MapPath("/UploadExcel/");
            if (!System.IO.Directory.Exists(path))
                System.IO.Directory.CreateDirectory(path);
            String filePath = path + DateTime.Now.ToString("yyyyMMddhhmmss") +"_.xmls";
            file.SaveAs(filePath);
            DataSet data= TerpPOSLibrary.Comm.excel.ExeclTool.ExcelDataSource(filePath);
            DataTable table = null;
            if (data.Tables.Count > 0) {
                table=data.Tables[0];
            }
            var message="";
            var result = "0";
            List<Object> list = new List<object>();
            if (table != null) {
                if (table.Columns["手机号码"] == null || table.Columns["姓名"] == null)
                {
                    message = "导入的Excel格式有误,请下载模板查看格式";
                    result = "-1";
                }
                else
                {
                    foreach (DataRow row in table.Rows)
                    {
                        if (!String.IsNullOrEmpty(row["手机号码"].ToString()))
                        {
                            var sendModel = new { SendMobile = row["手机号码"], SendName = row["姓名"] };
                            list.Add(sendModel);
                        }
                    }
                }
            }
            FileInfo del_file = new FileInfo(filePath);
            del_file.Delete();
            var obj = new { result = result, message = message, list = list };
            return Json(obj);
        }
可能是你的浏览器默认不处理Application/json输出。试下在注册表中注册Json MIME类型:
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=dword:00080000
以上保存在.reg格式的文件中,用regedit.exe执行。
感谢您的热心,问题已经解决,十分简单
楼主怎么解决的?求解!
楼主是怎么解决的?我现在也遇到了这个问题,求解!!!
请教下楼主,怎么解决的!!
我今天也碰到同样的问题,后面是这样解决的
1、前台ajaxSubmit方法中指定dataType: "json"
2、后台Json返回方法中指定contentType为"text/plain;charset=utf-8"