将Json传递到特定大小时,Ajax调用失败
我有以下代码将JSON对象传递给AJAX调用将Json传递到特定大小时,Ajax调用失败,json,ajax,model-view-controller,Json,Ajax,Model View Controller,我有以下代码将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':
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应该是合理的,因为失败的数据与成功的数据完全相同,但复制到其大小的两倍
到目前为止,我已经试过了
将此添加到my web.config:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="1000000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
<add key="aspnet:MaxJsonDeserializerMembers" value="1500000000" />
并将其添加到web.config中的appSettings:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="1000000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
<add key="aspnet:MaxJsonDeserializerMembers" value="1500000000" />
并设置以下各项:
<httpRuntime maxRequestLength="1000000000" .../>
所有这些都没有产生任何影响。
欢迎提出更多建议 您需要对大型JSON对象使用POST请求,还需要将JSON数据字符串化,contentType为“application/JSON”,dataType为“JSON”。 将ajax调用中的“data”参数替换为: 数据:JSON.stringify(jsonResult) 此外,在服务器大小脚本中,使用get-POST方法捕获客户端数据。
希望这有帮助:)谢谢。。。不知道为什么这是一个开始,但这让我走上了正确的轨道!