knockout.js 使用Knockout JS/ JQuery将表单数据发布为Json

ecr0jaav  于 2022-11-10  发布在  jQuery
关注(0)|答案(1)|浏览(119)

当我尝试将表单数据以Json格式发送到服务器时,我遇到了一些错误。

permissionRequestModel.requestPermission = function () {
if ($("#permissionRequestForm").valid()) {
  $.ajax({
          url: "",
          type: "POST",
          data: ko.toJSON(this),
          processData:false,
          contentType: "application/json",
          dataType:"json",
          success: function (result) {
                    alert("Success");
                     },
         error: function (result) {
             alert(result.responseText);
                 }
           });
          }
    else {
        }
        };

淘汰模式如下

//Model
var permissionRequestModel = {
coNumber: ko.observable(''),
employName: ko.observable(''),
fromDate: ko.observable(''),
toDate: ko.observable(''),
checkFullDay: ko.observable(false),
fromTimeHH: ko.observable(''),
fromTimeMM: ko.observable(''),
toTimeHH: ko.observable(''),
toTimeMM: ko.observable(''),
permissionTypeOne: ko.observable(''),
permissionTypeTwo: ko.observable(''),
approverList: ko.observableArray([]),
reasonLeave: ko.observable('')
};

在一些地方读到,可能是因为Json可能在发送到服务器之前被编码,但即使设置processData也无法解决它。请指导。
错误信息

nhaq1z21

nhaq1z211#

this更改为permissionRequestModel ...您的this不是模型,因为您不再处于模型的上下文中。您处于函数内部,而this将返回该函数。

permissionRequestModel.requestPermission = function () {
if ($("#permissionRequestForm").valid()) {
  $.ajax({
          url: url,
          type: "POST",
          data: ko.toJSON(permissionRequestModel),
          processData:false,
          contentType: "application/json",
          dataType:"json",
          success: function (result) {
                    alert("Success");
                     },
         error: function (result) {
             alert(result.responseText);
                 }
           });
          }
    else {
        }
        };

相关问题