首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >razor页面上的Dropzone返回400状态代码

razor页面上的Dropzone返回400状态代码
EN

Stack Overflow用户
提问于 2018-05-02 03:24:17
回答 3查看 1.5K关注 0票数 1

我在ASP.NET Core2.0的剃刀页面上使用了DropZone和其他类似的表单输入-

DzDemo.cshtml页面-

代码语言:javascript
复制
<form method="post" enctype="multipart/form-data">
    <input type="text" id="Username" name="Username" />
    <div class="dropzone" id="my-dropzone" name="mainFileUploader">
        <div class="fallback">
            <input name="file" type="file" multiple />
        </div>
    </div>
</form>
<div>
    <button type="submit" id="submit-all"> upload </button>
</div>

JS:-

代码语言:javascript
复制
Dropzone.options.myDropzone = {
            url: "/DzDemo?handler=Upload",
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 100,
            maxFiles: 100,
            acceptedFiles: "image/*",
           // paramName: myParamName,
            init: function () {

                var submitButton = document.querySelector("#submit-all");
                var wrapperThis = this;

                submitButton.addEventListener("click", function () {
                    wrapperThis.processQueue();
                });

                this.on('sendingmultiple', function (data, xhr, formData) {
                    formData.append("UserName", $("#Username").val());
                });
                this.on('error',
                    function (file, response) {
                        console.log(response);
                        alert(response);
                    });
            }
        };

DzDemo.cshtml.cs页面:-

代码语言:javascript
复制
[HttpPost]
        public IActionResult OnPostUpload()
        {
            var data = Request.Form; //This is 
            return Page();
        }

但我从服务器得到400响应,我不能处理上传的文件服务器端,它也不会热的Upload方法在服务器端。请帮帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-25 14:21:55

我通过设置headers选项使其正常工作

代码语言:javascript
复制
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() }

当然,您需要使用<form />元素或显式地在页面中添加@Html.AntiForgeryToken()

票数 0
EN

Stack Overflow用户

发布于 2018-12-17 01:35:20

如果表单中缺少AntiforgeryToken,这将导致400将dropzone.js与Razor Pages一起使用。

这通常是自动注入的,但删除_viewimports或它的标记助手将阻止这一点。

要进行验证,只需将此行添加到<form/>元素中,或者查看调试控制台中的错误消息。

代码语言:javascript
复制
@Html.AntiForgeryToken()
票数 2
EN

Stack Overflow用户

发布于 2019-04-16 00:14:46

在sendingmultiple中添加这一行,它将解析您的pb:

代码语言:javascript
复制
this.on('sendingmultiple', function (data, xhr, formData) {
    xhr.setRequestHeader("XSRF-TOKEN",
                     $('input:hidden[name="__RequestVerificationToken"]').val());
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50122555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档