【发布时间】:2020-04-08 23:59:49
【问题描述】:
我有以下代码将 JSON 对象传递给 AJAX 调用...
var jsonResultStr = $j("#HiddenLiveJson").val();
var jsonResult = JSON.parse(jsonResultStr);
var serviceURL = appRoot + 'Register/ImportTasks'
$j.ajax({
type: "get",
url: serviceURL,
data: { 'jsonResultsStr': jsonResultStr },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
Json 来自 XLSX 文件,因此可能是任何大小。
如果传递了一个相对较小的 JSON 集,比如 JSON 中有 7 个项目,那么 AJAX 调用成功通过,控制器动作被命中,我的数据被导入。但是,如果传递了更大的 JSON 数据集,那么它会始终失败(HTTP 状态 400),甚至不会靠近控制器操作。我似乎无法在任何地方找到导致这种情况的任何建议。显然,我的第一个猜测是 XLSX 文件的大小。
顺便说一句...我的测试中使用的 JSON 应该是正确的,因为失败的数据与成功的数据相同,但复制到两倍大小。
到目前为止,我已经尝试过 将此添加到我的 web.config:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="1000000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
这也是 web.config 中的 appSettings:
<add key="aspnet:MaxJsonDeserializerMembers" value="1500000000" />
并且还设置以下内容:
<httpRuntime maxRequestLength="1000000000" .../>
这些都没有任何区别。 任何更多的建议都非常欢迎!
【问题讨论】:
标签: json ajax model-view-controller