首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AJAX Post到IFormFile的ASP.net核心剃刀页面文件上载处理程序返回404Not Found

使用AJAX Post到IFormFile的ASP.net核心剃刀页面文件上载处理程序返回404Not Found
EN

Stack Overflow用户
提问于 2021-03-11 07:38:52
回答 1查看 258关注 0票数 0

我有一个非常简单的任务,只需要上传一个文件,并有AJAX张贴到索引页面:

代码语言:javascript
运行
复制
    <input type="file" id="file-selector" accept=".txt">

关联Javascript:

代码语言:javascript
运行
复制
const fileSelector = document.getElementById('file-selector');
fileSelector.addEventListener('change', (event) => {
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.addEventListener('load', event => {
        const txtFile = event.target.result;
        $.ajax({
            type: "POST",
            url: "/ControlData?handler=FileUploader",
            error: function (request, status, error) { alert(request.responseText); },
            data: txtFile,
            cache: false,
            contentType: false,
            processData: false,
            headers: { "RequestVerificationToken": "@token" }
        });
    });
    reader.readAsText(file);
});

/Pages/ControlData/Index.cshtml.cs中的代码:

代码语言:javascript
运行
复制
    public IActionResult OnPostFileUploaderAsync(IFormFile model)
    {
        return null;
    }

应用程序运行良好,文件被选中,但POST调用总是得到404:

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 10:44:33

应用程序运行良好,文件被选中,但POST调用总是得到404

请检查页面路由是否配置了路由数据参数,如@page "{title}"等,会导致HTTP404错误。

需要上传一个文件,并让AJAX将其发布到/Pages/ControlData/Index.cshtml.cs public IActionResult OnPostFileUploaderAsync(IFormFile模型)中的Index page Code中

要将选定的文件发布到处理程序OnPostFileUploaderAsync,可以尝试修改代码,如下所示。

代码语言:javascript
运行
复制
<script>
    const fileSelector = document.getElementById('file-selector');
    fileSelector.addEventListener('change', (event) => {
        const file = event.target.files[0];
        
        //post the selected file through formdata
        //instead of using the readAsText() method to read the contents of the specified file

        var txtFile = new FormData();
        txtFile.append("model", file);

        $.ajax({
            type: "POST",
            url: "/ControlData/Index?handler=FileUploader",
            error: function (request, status, error) { alert(request.responseText); },
            data: txtFile,
            cache: false,
            contentType: false,
            processData: false,
            headers: { "RequestVerificationToken": "@token" }
        });
    });
</script>

测试结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66574446

复制
相关文章

相似问题

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