关于jQuery的load方法的Json错误

时间:2011-09-29 09:59:41

标签: javascript jquery

使用JSON请求时出现以下错误:

  

使用JSON进行序列化或反序列化时出错   JavaScriptSerializer。字符串的长度超过了设置的值   在maxJsonLength属性上。

这是jQuery代码:

//load partial view contain grid
$('#rptProductsRates').load('@Url.Action("ProductsRatesFlipPagination", "Reports")', { flipPagination: true }, function (data) {
    if (data.toString().substr(0, 15) == "<!DOCTYPE html>") {
      window.location = '@Url.Action("ProductsRates", "Reports")';
    }    
    else {
            debugger;
            var resultError = data.toString().substr(0, 9);
            if (resultError == "<!DOCTYPE") {
               var exceptionURL='@Url.Content("~/Reports/Exception?controller=Reports&action=ProductsRates")';
                        window.location = exceptionURL;
                //unblock the UI     
                $.unblockUI();
            }
            else {
                $('#contentDiv').show();
                //unblock the UI     
                $.unblockUI();
                var bottomMarginFirst = (screen.height * .29)
                var bottomMargin = (screen.height * .42)
                if ($('.renderBody').height() <= ($(document).height() - bottomMarginFirst)) {
                    $('.renderBody').css({ 'height': ($(document).height() - bottomMargin + @System.Configuration.ConfigurationManager.AppSettings["GridHeight"] - 100) })
                }
            }
    }

导致此错误的原因和可能的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

看起来你正在向一个ASP.NET MVC3后端抛出一个AJAX请求。 AFAIK,MVC3使用的本机Javascript序列化程序具有默认最大解析JSON长度4MB(如果我弄错了,请纠正我)。如果您传入的JSON字符串大于此值,则必须采用解决方法(通过分解请求,优化对象或调整服务器端设置)。