formData.has() 不是函数

formData.has() is not a function

我正在尝试进行简单的 ajax 文件上传,但我收到 "Uncaught TypeError: formData.has is not a function"

如果我也注释掉 formData.has() 检查函数并将其替换为 formData.append('myResume'),我会得到一个类似的错误 formData.get () 不是我的 ajax 调用中的函数。有什么建议么?谢谢:)

这是html:

<div id="upload">
<form id="file-form" name="resume.pdf">
  <input type="file" id="file-select"/>
  <button type="submit" id="upload-button">Upload</button>
</form>

和 javascript:

$(function(){
    var formData = new FormData(); 

    $('#file-form').submit(function(event){
        var fileInput = document.getElementById('file-select').files;
        var file = fileInput.item(0);

        event.preventDefault();

        //Error here formData.has() is not a function 
        if(formData.has('myResume')){
            formData.set('myResume', file);
        } else{
            formData.append('myResume', file);
        }

        $.post('/upload', {file: formData.get('myResume')});
    })
})

参见https://developer.mozilla.org/en-US/docs/Web/API/FormData#Browser_compatibility。它声明对于 chrome,delete()get()getAll()has()set() 方法在标志后面受支持。

这意味着您需要在设置中启用对这些方法的支持(启用实验性网络平台功能 chrome中的标志://标志).