关于MVC中返回JSON格式数据提示下载的问题

1.当提交的表单中含有上传控件的时候就会出现此情形

处理方法:在控制器返回Json格式数据的时候,处理一下ContentType 形如:return Json(new { OK = false, Message = "Upload file list is empty." }, "text/html");


注意:若直接将返回值类型修改为dataType: 'JSON' 在火狐下会异常,IE下正常,因此处理如下

$("#FormSOWManage").validate({
            submitHandler: function (form) {
                $(form).ajaxSubmit({
                    beforeSubmit:function(){
                        var BIFSubmitTimes='@ViewBag.BIFSubmitTimes';
                        var check=BIFSubmitTimes>0;
                        if(!check)
                        {
                            alert("Please submit BIF information firstly.");
                            return false;
                        }
                        return true;
                    },
                    url: '@Url.Action("SOWManage")/'+'@Model.Id',
                    dataType: 'html',//可以不加,默认接受类型为html,这里主要解决火狐下的JSON解析异常问题
                    clearForm: false,
                    success: function (responseText, statusText, xhr, $form) {

                    responseText = JSON.parse(responseText);//将接受的html类型返回值转成JSON
                    alert(responseText.OK);
                        if (!responseText.OK) {
                            alert(responseText.Message);
                        }
                        else {

                            alert(responseText.Message);
                        }
                    }
                });
            }
        });


 

 

 

解决Spring MVC中的JSON转换失败问题,你可以按照以下步骤进行: 1. **检查数据源**:首先确认后端API是否正确返回了预期的JSON格式数据。如果不是,你需要联系API提供者修改他们的响应。 2. **配置实体映射**:如果你确定数据是正确的,但在接收时出错,可能是模型(如`SdOrderGoodsDetailsVO`列表)与JSON结构未匹配。在`@ControllerAdvice`或`@ExceptionHandler`注解的方法中,使用`MappingJackson2HttpMessageConverter`的`jsonMapper`属性来配置自适应的`ObjectMapper`,让它能处理特殊类型的序列化和反序列化。 ```java @Configuration public class WebConfig { @Bean public MappingJackson2HttpMessageConverter jacksonMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); converter.setObjectMapper(objectMapper); return converter; } } ``` 这里的关键点是`ACCEPT_SINGLE_VALUE_AS_ARRAY`配置允许单个对象被自动视为数组。 3. **校验异常处理器**:如果数据仍然解析错误,考虑创建一个专门处理`HttpMessageNotReadableException`的异常处理器,捕获并处理这类异常,给出更友好的错误提示。 4. **定制错误页面**:最后,可以配置Spring MVC以显示详细的错误信息,而不是直接抛出500错误,这有助于调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值