如何使用ASP.NET MVC增加对AJAX JSON响应的2MB限制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用ASP.NET MVC增加对AJAX JSON响应的2MB限制相关的知识,希望对你有一定的参考价值。

当响应超过2MB时,我在进行AJAX调用时遇到问题。响应低于2MB的任何东西都能正常工作。当响应超过2MB时,我的“成功”方法永远不会被调用。

我的应用程序是ASP.NET MVC2。我正在使用jQuery AJAX调用进行调用:

$.ajax({
    type: "post",
    data: ajaxData,
    url: ajaxUrl,
    success: updateItems,
    cache: false
});

在我的控制器中,我使用的是Json()动作结果方法:

public ActionResult GetItems(....)
{
    ...
    return Json(packet);
}

当我在Fiddler中观看呼叫时,它会返回HTTP 500响应。

我尝试在web.config文件中设置maxJsonLength,如here所示,但这似乎没有任何区别。

关于如何允许超过2MB的响应的任何建议?

提前致谢, 跳跃

答案

您可以在web.config中添加以下内容:

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="1000000000" />
        </webServices>
    </scripting>
</system.web.extensions>
另一答案

我不确定您是否正在运行自己的服务器,或者如果您使用的是托管解决方案,但是,我们最近遇到了此问题,但限制为30MB。任何更大的东西都不会激发成功方法。因此,如果您在共享主机上,则此设置可能已设置为2MB。

我们通过更改maxAllowedContentLength来修复此问题,如下所述:http://www.webtrenches.com/post.cfm/iis7-file-upload-size-limits

另一答案

更改executionTimeout和maxRequestLength可能是解决方案,因为您说:“我的'成功'方法永远不会被调用。” (它解决了我添加它的问题。)

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="500000000"  executionTimeout="120" />
    </system.web>
<configuration>  

Source : https://webconnection.west-wind.com/docs/_4lp0zgm9d.htm

以上是关于如何使用ASP.NET MVC增加对AJAX JSON响应的2MB限制的主要内容,如果未能解决你的问题,请参考以下文章

使用 ASP.NET MVC 在 JS 文件中为 jQuery 设置 ajax url

识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

Asp.net mvc 使用Ajax调用Action 返回数据。

asp.net mvc 使用Ajax调用Action 返回数据

asp.net mvc 使用Ajax调用Action 返回数据

MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)