【问题标题】:Does JQuery's Ajax refer to maxJsonLength property in web.configJQuery 的 Ajax 是否引用了 web.config 中的 maxJsonLength 属性
【发布时间】:2017-11-20 08:14:52
【问题描述】:

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

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

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

<jsonSerialization maxJsonLength="2147483644"/>

以下是应用程序在将数据返回到浏览器之前如何处理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 字符串过长,页面就停止响应,控制台窗口没有任何错误。当我在.Net应用程序端调试时,serializer.Serialize(lRow);顺利并成功返回r,之后页面上的加载图标一直在旋转。如果我在页面上按 F5,就会出现搜索数据。

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

【问题讨论】:

  • 不,绝对不会。这似乎是一个 .net 相关的配置。

标签: javascript jquery asp.net json web-config


【解决方案1】:

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

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

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

【讨论】:

  • 强调“默认设置”
  • 但是控制台窗口没有任何错误,它只是停止响应,如果我按F5,结果会出现而不是'正常页面刷新'
  • 这根本不是一个愚蠢的问题。很高兴你解决了。
  • @RoryMcCrossan 谢谢。还有一个问题,如果我把dataType 改成text,应该会顺利吧?但是页面仍然没有响应。
  • 数据格式只影响响应的解码方式。如果它已经在工作,它本质上不会让任何事情“顺利进行”。如果您有问题,我建议您开始一个新问题 - 但请务必检查控制台并报告您在其中发现的任何错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 2018-09-11
  • 2014-09-15
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
相关资源
最近更新 更多