我使用AJAX发布我的表单:
$(function () {
$("#Compare").click(function (e) {
$.ajax({
url: '@Url.Action("_Compare","API")',
dataType: 'application/json',
data: {
model: $("#CompareForm").serialize()
},
type: "post",
success: function(response) {
alert (response);
}
});
e.preventDefault();
});
});
我正在尝试反序列化我的JSON结果,但是我得到了一个'无效的Json原始异常'。
我的Json结果:
"%5B0%5D.Id=1&%5B0%5D.Description=Sutherland+Silver+Plans+offers+you...&%5B0%5D.Price=30&%5B0%5D.Title=Silver+Plan&%5B0%5D.isSelected=true&%5B0%5D.isSelected=false&%5B1%5D.Id=2&%5B1%5D.Description=Sutherland+Gold+Plans+offers+you...&%5B1%5D.Price=50&%5B1%5D.Title=Gold+Plan&%5B1%5D.isSelected=true&%5B1%5D.isSelected=false&%5B2%5D.Id=3&%5B2%5D.Description=Sutherland+Platinum+Plans+offers+you...&%5B2%5D.Price=80&%5B2%5D.Title=Platinum+Plan&%5B2%5D.isSelected=false"
答案 0 :(得分:2)
您似乎对JSON是什么感到困惑,以及问题是与请求还是响应有关。
问题在于请求。您正在尝试将serialize()
创建的查询字符串放入对象的model
参数中,该对象本身将被序列化并再次编码。相反,只需将序列化生成的查询字符串传递给操作:
$("#Compare").click(function (e) {
$.ajax({
url: '@Url.Action("_Compare","API")',
dataType: 'application/json',
data: $("#CompareForm").serialize(),
type: "post",
success: function(response) {
console.log(response);
}
});
e.preventDefault();
});
您已指定响应将为JSON。如果是这种情况,请使用console.log
进行检查,否则alert()
只会显示[object Object]
。