ASP.NET MVC не поддерживает генерацию необработанных токенов защиты от подделки по умолчанию.К счастью, Orchard предоставляет метод расширения для этого.
Вы можете просто изменить свой вызов ajax следующим образом:
$.ajax({
type: "post",
dataType: "",
url: "/orchardlocal/mymodule/stuff/AddFavorite",
data: {
id: $(this).data("id") },
__RequestVerificationToken: '@Html.AntiForgeryTokenValueOrchard()'
},
success: function (response) {
alert("it worked");
}
});
Этот метод полезен, поскольку вам не нужна существующая ФОРМА на вашей странице.Хотя это решение действительно только в том случае, если javascript отображается из вида Razor.
Существует еще решение, если у вас есть отдельный файл сценария из вашего представления, который заключается в том, чтобы сохранить токен защиты от подделки внутри переменной javascript, объявленной из представления, а затем использовать его из сценария:
@using(Script.Head()) {
<script type="text/javascript">
//<![CDATA[
var antiForgeryToken = '@Html.AntiForgeryTokenValueOrchard()';
//]]>
</script>
}
Тогда из сценария:
data: {
id: $(this).data("id") },
__RequestVerificationToken: antiForgeryToken
}
Если нет, то решение, предложенное Дариным, было бы правильным подходом.