Скажем, у вас есть метод действия, например
это:
[AcceptVerbs(HttpVerbs.Post),
ValidateAntiForgeryToken]
public ActionResult DeleteAccount(int
accountId) {
// delete stuff }
И вы звоните через:
$.post('/home/DeleteAccount', {
accountId: 1000 }, function() {
alert('Account Deleted.'); });
Так как POST не включает
AntiForgeryToken, не получится.
К счастью, это не займет много
умственные способности, чтобы это исправить. Все клиент
боковой компонент AntiForgeryToken
делает это положить токен в основной
скрытое поле. Итак, вам просто нужно
вытащить эти данные и включить их в
ваш звонок AJAX.
var token =
$('input[name=__RequestVerificationToken]').val();
$.post('/home/DeleteAccount', {
accountId: 1000,
'__RequestVerificationToken': token },
function() {
alert('Account Deleted.'); });
Обратите внимание, что если у вас есть несколько
формы на странице с несколькими
AntiForgeryTokens, вам придется
укажите, какой вы хотите в своем
JQuery селектор. Еще одна ошибка, если
вы используете jQuery
serializeArray()
функция, у вас будет
добавим немного по-другому:
var formData =
$('#myForm').serializeArray(); var
token =
$('input[name=__RequestVerificationToken]').val();
formData.push({ name:
'__RequestVerificationToken', value:
token });
$.post('/home/DeleteAccount',
formData, function() {
alert('Account Deleted.'); });
Обновление: ссылка была исправлена.