未捕获的TypeError:无法执行'追加' on' FormData':需要2个参数,但只有1个存在

时间:2017-01-28 18:52:30

标签: asp.net asp.net-web-api2 asp.net-ajax

我将表单数据发送到asp.net mvc中的web api控制器,但我的ajax请求每次遇到上述错误时都没有命中控制器,请告诉我如何在asp.net mvc中的ajax中发送文件请求web api控制器

$(document).on("submit", ".SignupForm", function (event) {
    event.preventDefault();
    var formData = new FormData($(".SignupForm"));
    formData.append($('#imageFile')[0].files[0]);
    $.ajax({
        url: 'api/Countries',
        type:'POST',
        data: obj,
        dataType: 'json',
        processData: false,
        success: function (result) {
            console.log(result);
        },
        error: function (data, status, abc) {
            console.log(data);
            console.log(status);
            console.log(abc);
        }
    });
});

2 个答案:

答案 0 :(得分:1)

Easy的答案是对的,如果你不理解他的答案那就是你想要的。

formData.append('chooseAName', $('#imageFile')[0].files[0]);

答案 1 :(得分:0)

看到这个:(显然你必须添加参数)

  

SyntaxEDIT此方法有两个版本:一个是两个和三个   参数版本:

     

formData.append(name,value); formData.append(name,value,filename);   参数

     

name数据包含在值中的字段的名称。价值   场的价值。这可以是USVString或Blob(包括子类)   比如File)。 filename可选报告给服务器的文件名   (一个USVString),当Blob或File作为第二个参数传递时。   Blob对象的默认文件名是“blob”。默认文件名   for File对象是文件的文件名。   ExampleEDIT以下行创建一个空的FormData对象:

     

var formData = new FormData(); //当前为空您可以添加   使用FormData.append:

的键/值对      

formData.append('username','Chris'); formData.append( 'userpic',   myFileInput.files [0],'chris.jpg'); 与常规表单数据一样,你可以   附加多个具有相同名称的值。例如(和   通过在名称中添加[]来兼容PHP的命名约定:

     

formData.append('userpic []',myFileInput1.files [0],'chris1.jpg');   formData.append('userpic []',myFileInput2.files [0],'chris2.jpg');   这种技术使得处理多文件上传变得更加简单,因为   结果数据结构更有利于循环。

https://developer.mozilla.org/en-US/docs/Web/API/FormData/append

相关问题