ajax使用json数据格式--无效的 JSON 基元

ajax使用json数据格式提交

一开始这么写的

        var flobj = {
            UserId: userid,
            ForbidSDT: ForbidSDT,
            ForbidEDT: ForbidEDT
        }
        $.ajax({
            type: "POST",
            url: "/Limit/Forbid",
            contentType: "application/json", //必须有  
            dataType: "json", //表示返回值类型,不必须  
            data: { Types: chk_value, fl: flobj, remark: remark, tip: tip },
            success: function (jsonResult) {
                if (jsonResult.Code == 1)
                {
                    alert("添加成功");
                    $(target).parent().parent().find("input").attr("disabled", true);
                } else {
                    alert("添加失败");
                }
            }
        });

提交的数据格式:

这种会报错误:

无效的 JSON 基元: Types

后来改了

        var flobj = {
            UserId: userid,
            ForbidSDT: ForbidSDT,
            ForbidEDT: ForbidEDT
        }
        $.ajax({
            type: "POST",
            url: "/Limit/Forbid",
            contentType: "application/json", //必须有  
            dataType: "json", //表示返回值类型,不必须  
            data: JSON.stringify({ Types: chk_value, fl: flobj, remark: remark, tip: tip }), 
            success: function (jsonResult) {
                if (jsonResult.Code == 1)
                {
                    alert("添加成功");
                    $(target).parent().parent().find("input").attr("disabled", true);
                } else {
                    alert("添加失败");
                }
            }
        });

提交的数据格式:

记录:

data必须是一个“表示JSON对象的字符串”,而不是一个“JSON”对象

原因是jquery会把JSON对象序列化成标准POST的形式,ASP.NET WebService需要的是JSON格式的数据,所以必须把你的数据变成一个JSON样子的字符串

原文地址:https://www.cnblogs.com/ningyouyou/p/8202827.html