【问题标题】:ASP.NET MVC AJAX POST ValidateAntiForgeryTokenASP.NET MVC AJAX POST ValidateAntiForgeryToken
【发布时间】:2017-07-05 19:57:45
【问题描述】:

使用我的代码,我得到一个内部服务器错误:

@using (Html.BeginForm("", "Manage", FormMethod.Post, new { role = "form"}))
{
    @Html.AntiForgeryToken()
}
<script>
function Like(id) {
    var requestData = {
        profileId: id,
        __RequestVerificationToken: $('[name=__RequestVerificationToken]').val(),
    };

    $.ajax({
        url: '/Manage/Like',
        type: 'POST',
        data: JSON.stringify(requestData),
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        error: function (xhr) { alert('Error: ' + xhr.statusText); },
        success: function (result) {},
        async: true,
        processData: false
    });
}
</script>

控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Like(string profileId)
{ ... }

如果我删除 [ValidateAntiForgeryToken] 一切正常,但我失去了安全感。如何修复内部服务器错误?

我在提琴手 SyntaxView 2 请求中看到: /管理/喜欢 {"profileId":13,"__RequestVerificationToken":"jH2ofYlcTiHl8lixW_ANEHOg5KgwRh5Xl43lQfGkDFh55jX-x5cmz4RfPtbDfu92oQsTM7zsop83ldfbxMdIIELYZ0kfByFcXjUp-5mwyKZcQ2CbDItzW0iQOtLsqaDItz

/管理 __RequestVerificationToken=MNiKOJHZg7BGaTNccOjrR2Obf_nPhKfcwIPZVBUl53G368n5euzB4y1htH47VKg3V3mHfxkjYZDz6iPepQ7jpeXGARtlj6vV74B8zQbp4by9JR4Rcz4sHANm3WHb6WAXaLcsnFvWJp8

【问题讨论】:

  • 删除JSON.stringify

标签: ajax asp.net-mvc antiforgerytoken


【解决方案1】:

从 sim 中获取。在这里提问include antiforgerytoken in ajax post ASP.NET MVC

function Like(id) {
 var form = $('form');
 var token = $('input[name="__RequestVerificationToken"]', form).val();
 $.ajax({
    url: '/Manage/Like',
    type: 'POST',
    data: { __RequestVerificationToken: token, profileID: id },
    error: function (xhr) { alert('Error: ' + xhr.statusText); },
    success: function (result) {},
    async: true,
    processData: false
 }); 
}

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多