无法使用 $ 将 JSON 数据发布到 MVC 操作方法.AJAX,但我得到 200 OK 后响应



我正在尝试将一些字符串化数据发布到MVC控制器中的操作方法中。下面是一段JS代码

function SaveStateForGrid(pGridId, pIsAysnc) {
            var grid = $('#' + pGridId).data("kendoGrid");                
            var tGridState = kendo.stringify(grid.getOptions());
            $.ajax({
                url: '/Home/SaveGridState',
                type: 'POST',
                dataType: 'json',
                async: pIsAysnc,
                data: { pGridState: tGridState, pGridName: pGridId },
                success: function (data) {
                    console.log("Data Saved Successfully");
                },
                error: function (jqXHR, textStatus) {
                    console.log("Error while saving grid data " + pGridId);
                }
            });
        }

我正在尝试将网格状态信息保存到数据库中,并且应用程序中的每个网格都有不同的网格状态信息。

这有时有效 - 例如,如果我在那里保留断点等等,帖子会命中控制器方法"SaveGridState"。在其他情况下,不会命中断点,数据也不会保存在数据库中,但代码确实流向"成功"AJAX 回调 - 没有错误,我在 chrome 调试器的网络选项卡中收到 200POST OK 响应。

我查找了正在发送的数据,并发现在失败的情况下,发布的数据会导致它。特别是第一个参数 - "tGridState" - 一个字符串化的KendoGrid配置数据。如果我从其他成功的调用中替换此数据,则没有问题。我已经比较了不同查看工具上的数据,但无法理解数据中的内容破坏了这一点。

附加指向包含"有效"和"无效"数据的 zip 文件的链接。任何帮助请?

https://www.dropbox.com/s/whfglyk607bnd04/Downloads.zip?dl=0

发布此内容几个月后 - 有问题的模块处于冻结状态。

我发现字符串化的网格状态信息(网格配置数据)包括网格相关事件的JS函数,这导致了字符串化数据中的问题。事实上,字符串化从对象中剥离了这些函数。

不知何故,这阻止了我到达服务器端的断点,即使数据"显然"发布。

所以我写了一个 JS 函数,在字符串化之前从我的 gridstate 配置数据中删除所有不必要的数据 - 然后帖子完美运行。

瞧!

相关内容

  • 没有找到相关文章

最新更新