我对我在asp.net中的C#代码后面定义的web方法进行了jquery / ajax调用。
我正在尝试返回一个包含2000个项目的字符串数组。
我收到一个未定义的错误。
如果数组小于400,则可以正常工作。
所以问题是我如何将大数组返回到jquery调用。
我从我的网络方法返回:
string[]
我可以返回的数组中的项目数量是否有限制,或者我必须以某种方式将其解析为json接受的内容?
此游戏的新功能非常值得欣赏。
//客户端
jQuery(function ($) {
$.ajax({
type: "POST",
url: "Feed.aspx/PlayClips",
data: JSON.stringify({
ClipValue: lstMotionClips.options[lstMotionClips.selectedIndex].value,
SessionID: sessionID,
alias: alias
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$.each(msg.d, function () {
if (this['Text'] == "ERROR") {
alert(this['Value']);
}
else {
arrayresult = msg.d;
totalFrames = arrayresult.length;
PlayBack();
}
});
},
error: function (msg) {
alert(msg.d);}
})
});
//服务器端
[WebMethod]
public static string[] PlayClips(string ClipValue, string SessionID, string alias)
{
string[] frames = null;
try
{
string[] parentDirectory = Directory.GetDirectories(parentPath, guid, SearchOption.AllDirectories);
if (parentDirectory.Length > 0)
{
frames = Directory.GetFiles(parentDirectory[0], "*.jpg", SearchOption.TopDirectoryOnly);
}
}
catch (Exception _ex)
{
dalStatic.AddError("PlayClips." + _ex.ToString());
}
return frames;
}
由于
NB 我在错误开始时检查了字符串的总长度。
看起来长达14188的字符串就可以了。一旦我超越,我就会收到错误。因此,已达到阈值。我已将MaxStringContent设置为非常高的数字,但仍然会收到错误。
答案 0 :(得分:2)
Json有限制在这里看到 - > http://msdn.microsoft.com/en-us/library/system.web.configuration.scriptingjsonserializationsection.maxjsonlength.aspx
同样改变web.config somthing
<configuration>
...
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="XXXXXX" />
</webServices>
</scripting>
</system.web.extensions>
...