无法使用 $.AJAX post JSON 数据到 MVC 操作方法,但我得到 Post 200 OK 响应
Not able to post JSON Data to MVC Action Method using $.AJAX but I get a Post 200 OK Response
我正在尝试 post 一些字符串化数据到我的 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);
}
});
}
我正在尝试将网格状态信息保存到数据库中,但我的应用程序中的每个网格都有不同的网格状态信息。
这有时会起作用——例如,如果我在那里保留一个断点,post 会触发控制器方法 "SaveGridState",等等。在其他情况下,断点未命中且数据未保存在数据库中,但代码确实流向 "success" AJAX 回调 - 没有错误,我在 [= 的网络选项卡中收到 200POST OK 响应34=]调试器。
我查看了正在发送的数据,发现在发送失败的情况下,是数据被 posted 导致的。特别是第一个参数 - "tGridState" - 字符串化的 KendoGrid 配置数据。如果我从其他成功的调用中替换此数据,则没有问题。我已经比较了不同查看工具上的数据,但无法理解数据中的哪些内容打破了这一点。
将 link 附加到包含 "Valid" 和 "Invalid" 数据的 zip 文件。有什么帮助吗?
https://www.dropbox.com/s/whfglyk607bnd04/Downloads.zip?dl=0
从 post 开始几个月后 - 有问题的模块处于冻结状态。
我发现字符串化的网格状态信息(网格配置数据)包含用于网格相关事件的 JS 函数,这会导致字符串化数据出现问题。事实上,字符串化从一个对象中剥离了这样的函数。
不知何故,即使数据已 posted "apparently".
,这也阻止了我在服务器端命中断点
所以我写了一个 JS 函数在字符串化之前从我的 gridstate 配置数据中删除所有不必要的数据 - 然后 post 完美地工作。
瞧!
我正在尝试 post 一些字符串化数据到我的 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);
}
});
}
我正在尝试将网格状态信息保存到数据库中,但我的应用程序中的每个网格都有不同的网格状态信息。
这有时会起作用——例如,如果我在那里保留一个断点,post 会触发控制器方法 "SaveGridState",等等。在其他情况下,断点未命中且数据未保存在数据库中,但代码确实流向 "success" AJAX 回调 - 没有错误,我在 [= 的网络选项卡中收到 200POST OK 响应34=]调试器。
我查看了正在发送的数据,发现在发送失败的情况下,是数据被 posted 导致的。特别是第一个参数 - "tGridState" - 字符串化的 KendoGrid 配置数据。如果我从其他成功的调用中替换此数据,则没有问题。我已经比较了不同查看工具上的数据,但无法理解数据中的哪些内容打破了这一点。
将 link 附加到包含 "Valid" 和 "Invalid" 数据的 zip 文件。有什么帮助吗?
https://www.dropbox.com/s/whfglyk607bnd04/Downloads.zip?dl=0
从 post 开始几个月后 - 有问题的模块处于冻结状态。
我发现字符串化的网格状态信息(网格配置数据)包含用于网格相关事件的 JS 函数,这会导致字符串化数据出现问题。事实上,字符串化从一个对象中剥离了这样的函数。
不知何故,即使数据已 posted "apparently".
,这也阻止了我在服务器端命中断点所以我写了一个 JS 函数在字符串化之前从我的 gridstate 配置数据中删除所有不必要的数据 - 然后 post 完美地工作。
瞧!