Javascript JQuery';s Ajax请参考web.config中的maxJsonLength属性

Javascript JQuery';s Ajax请参考web.config中的maxJsonLength属性,javascript,jquery,asp.net,json,web-config,Javascript,Jquery,Asp.net,Json,Web Config,在我的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(respon

在我的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"/>
如果Json字符串太长,页面就会停止响应,控制台窗口中没有任何错误。当我在.Net应用程序端调试时,
serializer.Serialize(lRow)
运行顺利,成功返回
r
,之后,页面上的加载图标继续旋转。如果我在页面上按F5,将显示搜索数据


我的问题是,如果
JQuery的Ajax
引用了
web.config
作为最大json字符串长度,为什么我在互联网上找不到任何关于这方面的信息

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

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


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

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

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


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

不,绝对不会。它似乎是一个与.net相关的配置。不,它绝对不是。它似乎是一个与.net相关的配置。强调“默认设置”,但控制台窗口中没有任何错误,它只是停止响应,如果我按F5,结果将显示而不是“正常页面刷新”,这根本不是一个愚蠢的问题。很高兴你把它解决了。@Rorymcrossan谢谢。还有一个问题,如果我将
数据类型
更改为
文本
,应该会顺利进行,对吗?但是页面仍然没有响应。数据格式只影响响应的解码方式。如果它已经开始工作,它就不会让任何事情“顺利进行”。如果你有问题,我建议你开始一个新的问题-但是一定要检查控制台并报告你在强调“默认设置”中发现的任何错误,但是控制台窗口中没有任何错误,它只是停止响应,如果我按F5,结果会出现而不是“正常页面刷新”,这根本不是一个愚蠢的问题。很高兴你把它解决了。@Rorymcrossan谢谢。还有一个问题,如果我将
数据类型
更改为
文本
,应该会顺利进行,对吗?但是页面仍然没有响应。数据格式只影响响应的解码方式。如果它已经开始工作,它就不会让任何事情“顺利进行”。如果你有问题,我建议你开始一个新的问题,但是一定要检查控制台,并报告你在那里发现的任何错误
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;