我正在尝试通过ajax调用发送防伪令牌和json对象
这是我的ajax调用方法
$("button#submit-btn").on("click", function (e) {
e.preventDefault();
//var valid = $("form#sh-post-form").valid();
var modell = { PlaceId: 1 };
var token = $('input[name=__RequestVerificationToken]').val();
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: "POST",
url: "/Post/SaveSharePost",
data: { __RequestVerificationToken: token, model: JSON.stringify(modell) }
});
这是我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SaveSharePost(SharePostVM model, string retunrUrl = null)
{
if (!ModelState.IsValid)
return View(model);
return View(model);
}
当我尝试发送ajax调用时,它会给我内部错误500,并且错误消息显示“所需的防伪表单字段__RequestVerificationToken不存在”
我该如何解决?
谢谢你们
答案 0 :(得分:0)
您应该将伪造令牌添加到模型中,例如:
model.__RequestVerificationToken=token
和
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: "POST",
url: "/Post/SaveSharePost",
data: {model: JSON.stringify(modell) }
});