AntiForgeryTokenをJqueryajaxreuestsで動作させる方法についてここで読みました。基本的に、次のようなものを使用して、post/ajax呼び出しにトークンを含める必要があります。
data: {
"__RequestVerificationToken":
$("input[name=__RequestVerificationToken]").val()
},
ただし...ViewModelsを使用して、ビューモデルオブジェクトを作成し、値を割り当ててから、JSON.stringifyしてデータとして渡します(以下のとおり)。
// Ajax call here
// Make a view model instance
var ajaxEditPermissionViewModel = new Object();
ajaxEditPermissionViewModel.HasPermission = isChecked;
ajaxEditPermissionViewModel.Permission = permission;
ajaxEditPermissionViewModel.Category = category;
ajaxEditPermissionViewModel.MembershipRole = role;
// Ajax call to post the view model to the controller
var strung = JSON.stringify(ajaxEditPermissionViewModel);
$.ajax({
url: '/Admin/Permissions/UpdatePermission',
type: 'POST',
dataType: 'json',
data: strung,
contentType: 'application/json; charset=utf-8',
success: function (data) {
ResetTableAfterAjaxCall();
ShowSuccessNotification();
},
error: function (xhr, ajaxOptions, thrownError) {
ShowUserMessage("Error: " + xhr.status + " " + thrownError);
ResetTableAfterAjaxCall();
}
});
現在の設定を使用してトークンを渡す方法が少し混乱していますか?どんなアドバイスも大歓迎です。