我偶然发现了一个小问题。 我得到一个 JSON 响应,其中包含一个包含 67615 个条目的字节数组。 现在好了,它添加了一个
`[....,154,156,);jQuery1910039778258679286416_1363006432850(181,104,...]
每 ~7300 个字符
现在,当我使用 ajax 方法解析它的正常工作方式时,它会给我一个错误,因为回调会使响应无效 SyntaxError: 在元素列表之后缺少 ]
...,184,1,26,65,140,86,211,16,194,210,174,1);jQuery17203250109862964784_13639643449...
所以它不再有效
我用这个来解析它
$.ajax({
url : url,
cache : false,
dataType : "jsonp",
crossDomain : true,
success : function(root) {
console.log(root)
}
})
这可能是 asp 服务器给我对象的问题,还是解析有问题?
提前致谢
编辑1:
[WebMethod(Description = " ", EnableSession = true)]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public Borrower getSessionedBorrowerHeader(ref sysmessage aMessage)
{
if (!(userValidated(ref aMessage)))
return null;
BorrowerControl borrowerControl = new BorrowerControl(LOCALconnectionStringDb,
WEBconnectionStringDb,
STATSconnectionStringDb,
LIBconnectionStringDb,
CATconnectionStringDb,
LIBconnectionStringDb,
Session);
Borrower returnObj = borrowerControl.getSessionedBorrowerHeader(ref aMessage);
borrowerControl.Dispose();
return returnObj;
}
如果您需要更多代码,请告诉我我不喜欢 ASP :(
编辑2:
要做什么:( 这是 JSON 答案
最佳答案
这听起来像是 ASP 的限制因素。这不是特定于 jQuery 的,而是针对来自 ASP 服务器的任何 JSON 响应。我也在 ColdFusion 服务器上看到过这个。找到此设置并查看您的限制是否与您达到的限制相关。看看你是否可以将它增加到你需要的。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="x"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
如果您无权访问服务器设置,您也可以在代码中设置值。这是一个 MSDN 引用:
它还在那里声明:
The maximum length of JSON strings. The default is 2097152 characters, which is equivalent to 4 MB of Unicode string data.
这远远超过了 ~7300 个字符的长度。但也许有人调整了这个设置。
我也很好奇您看到“多个”返回到回调方法。通常,我认为,这个限制只会 chop 第一个回调结果的结果。 也许你还有其他事情要发生?
关于javascript - Jquery 在解析时将巨大的数组拆分为许多新的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15341470/