【发布时间】:2020-02-05 10:02:03
【问题描述】:
我对控制器操作方法进行了以下 AJAX 调用:
$.ajax({
type: "POST",
url: "/BasesDados/Produtos/EditarProduto",
data: {
objProduto: objProduto,
listProdutoLinguas: produtoLinguas,
listCoresTamanhos: corTamanhos,
atributoIDs: attIDs
},
success: function (res) {
// ..do something
}
});
我在调用 AJAX 函数之前填充脚本中的对象。 它工作正常并将数据发送到控制器,除非它有大量数据要发送。在特定的错误情况下,对象“corTamanhos”填充了 261 个元素(它是一个对象数组),在这种特殊情况下,AJAX 调用失败,它永远不会将请求发送到服务器。
我已经尝试了很多东西,比如 JSON.serialize,使用 formData 元素,我快绝望了。
查看控制台后发现报错为Exception,如下:
“InvalidDataException:超出表单值计数限制 1024。”
我该如何克服这个问题?
有人可以帮忙吗?
非常感谢您。
【问题讨论】:
-
当您说“它失败”和“它从不向服务器发送请求”时,您是否检查过控制台是否有任何错误?发出请求后还要检查控制台的网络选项卡,看看它是否实际发送但服务器拒绝它。然后你可以从那里调试问题。
-
好吧,我知道它永远不会到达服务器,因为我在调试模式下运行,并且在 Action Method 中有多个断点,它永远不会被调用。对于其他数据少一点的情况,它运行完美。
-
这并不意味着没有提出请求。这意味着您的代码没有被命中。请求被正确发送是完全有可能的,但服务器出于多种原因拒绝它,例如。请求大小太大,模型绑定器无法使用的数据/格式无效,授权问题。这就是为什么你需要调试你得到的实际响应。
-
是的,你是对的。同时,我发现错误是一个异常:InvalidDataException: Form value count limit 1024 exceeded。更新了原帖。
-
在那种情况下try this
标签: jquery arrays json ajax asp.net-core-2.0