JQuery的Ajax是否引用了web.config中的maxJsonLength属性

Does JQuery's Ajax refer to maxJsonLength property in web.config

在我的 ASP.NET 站点中,单击搜索按钮时,我使用 Jquery AJAX 从网络服务加载 json 数据(实际上是一个字符串):

$.ajax({
  type: "POST",
  url: url,
  data: JSON.stringify(parameterArray),
  contentType: "application/json",
  dataType: "json",
  success: function(response) {
    d = JSON.parse(response.d);
  }

当 return 字符串变得太大时,页面停止响应。我必须转到 web.config 并添加此 属性 才能使网站正常工作:

<jsonSerialization maxJsonLength="2147483644"/>

以下是应用程序如何在 return 将数据发送到浏览器之前处理 search result

JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
string strData = dService.searhforData(ipt);
List<Dictionary<string, object>> lRow = processData(strData);
string r = serializer.Serialize(lRow);
return r;

万一 Json 字符串太长,页面就停止响应,控制台没有任何错误 window。当我在 .Net 应用程序端调试时,serializer.Serialize(lRow); 顺利并成功 return r,之后,页面上的加载图标一直旋转。如果我在页面上按 F5,就会出现搜索数据。

我的问题是,如果 JQuery's Ajax 指的是最大 json 字符串长度的 web.config,为什么我在互联网上找不到任何相关信息?

我确定 JSON.parse() 可以处理的数据量存在限制,但这与您的问题无关。

您的 web.config 文件包含要使用的设置 服务器端 。客户端上的JS与此完全无关。如果您需要修改该设置,那是因为您的 ASP.Net 代码生成 JSON 响应的时间比之前默认设置 jsonSerialization.

允许的时间长

如果您在发出失败的请求后检查浏览器控制台,您很可能会在响应中看到错误,从而引导您找到问题所在。