【问题标题】:Can't add a file to fetch POST request无法添加文件以获取 POST 请求
【发布时间】:2018-08-28 20:50:37
【问题描述】:

我有一个在邮递员中成功的请求,但是当我从我的 JS 代码中调用它时却失败了。 Chrome 开发工具中的请求类似,我怀疑我只是没有正确添加文件。这是在邮递员中添加文件的方式:

这是我的 JS 代码:

let formData = new FormData();
        formData.append('file', event.target.files[0]);
        fetch('http://localhost:8080/file/upload', {
            method: 'POST',
            headers:{
                'Content-Type': 'multipart/form-data',
                'Authorization': 'Bearer ' + JWT
            },
            body:formData
        }).then(response => console.log(response));

当输入的文件 (type='file') 更改时执行此代码。当我控制台记录 event.target.files[0] 时,我得到:

我添加的文件有错吗?

【问题讨论】:

    标签: javascript postman fetch-api


    【解决方案1】:
    'Content-Type': 'multipart/form-data',
    

    multipart/form-data 需要一个参数来描述边界标记。

    fetch 将自动生成一个适当的Content-Type 标头,但您正在覆盖它并用损坏的标头替换它。

    删除该行。

    【讨论】:

    • 哇,谢谢。每天学习新东西。该请求现在有效,但似乎我没有得到回复。然而,在邮递员中,我是。有什么明显的原因吗?
    • 有什么方法可以手动添加这个带有边界标记的标题?
    • @gfels — 仅当您想用自己的版本替换 FormData 时,才能找出边界标记是什么。
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2021-06-28
    • 2011-05-21
    • 2018-05-17
    • 2021-12-04
    • 2018-02-18
    相关资源
    最近更新 更多