相关疑难解决方法(0)

如何通过jquery ajax发送AntiForgeryToken(CSRF)和FormData

所以我想通过AJAX POST与fileUpload一起使用AntiForgeryToken.这是我的代码:

视图

@using (Html.BeginForm("Upload", "RX", FormMethod.Post, new {id = "frmRXUpload", enctype = "multipart/form-data"}))
{
     @Html.AntiForgeryToken()
     @Html.TextBoxFor(m => m.RXFile, new {.type = "file"})
     ...rest of code here
}

<script>
    $(document).ready(function(){
        $('#btnRXUpload').click(function () {
            var form = $('#frmRXUpload')

            if (form.valid()) {
                var formData = new FormData(form);
                formData.append('files', $('#frmRXUpload input[type="file"]')[0].files[0]);
                formData.append('__RequestVerificationToken', fnGetToken());

                $.ajax({
                    type: 'POST',
                    url: '/RX/Upload',
                    data: formData,
                    contentType: false,
                    processData: false
                })
            }
        })
    })
</script>
Run Code Online (Sandbox Code Playgroud)

调节器

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Upload()
{
    //rest of code here …
Run Code Online (Sandbox Code Playgroud)

c# ajax asp.net-mvc jquery asp.net-mvc-5

7
推荐指数
1
解决办法
3982
查看次数

标签 统计

ajax ×1

asp.net-mvc ×1

asp.net-mvc-5 ×1

c# ×1

jquery ×1