我已经在 Orchard Modules 中成功使用 AntiForgery 选项和 Ajax 有一段时间了。最近,我一直想改变使用默认的 ContentType = 'application/x-www-form-urlencoded; charset=UTF-8' 到 JSON 有效负载 (ContentType='application/JSON')。
一旦我这样做,我就会得到 ASP.NET 抛出的异常“未提供所需的防伪令牌或无效。”。好的,但是如何在保留 JSON 有效负载的同时添加 __RequestVerificationToken 呢?
作为参考,这是我正在使用的代码:
var config = {
url: url,
type: "POST",
data: data ,
dataType: "json",
contentType: "application/json; charset=utf-8"
};
$.ajax(config);
控制器(在到达此处之前显示“未提供所需的防伪令牌或无效。”):
[HttpPost]
public ActionResult Update(ShoppingCartItemVM[] items)
{
// do stuff
}
这是 Orchard AntiForgery 包装器或 MVC AntiForgery 功能的限制吗?还是我(再次)愚蠢?