Ajax如何上传表单数据及文件
以往的ajax传参
        const title = $("input[name='title']").val();
        const content = editor.txt.html();
        $.ajax(
            {
                headers: {
                    'X-CSRF-TOKEN': ""
                },
                type: "post",
                async: false,
                url: '/account',
                data: {'title':title, 'content':content},
                success: function (res) {
                    console.log(res);
                }
            }
        );
以上方法只能传递参数,若遇到上传用户信息(姓名,性别,身份证)类似操作,则会报错
期间想到的处理方法,单独创建一个接口,借助这个接口单独上传图片文件,但操作麻烦。
一番度娘后,找到解决办法
        var formData = new FormData();
        formData.append('image', images);
        formData.append('name', name);
        formData.append('content', content);
        $.ajax(
            {
                headers: {
                    'X-CSRF-TOKEN': ""
                },
                type: "post",
                async: false,
                url: '/account',
                contentType: false, 
                processData: false,
                data: formData,
                success: function (res) {
                    console.log(res);
                 
                },
                error:function (res) {
                    console.log(res);
                }
            }
        );
FormData:用一些键值对来模拟一系列表单控件,即把form中所有的元素的name与value组成一个queryString。
详解可以度娘(主要作者也是一知半解)
特别注意
#必要参数,不加会报错
contentType: false  #发送数据到服务器时所使用的内容类型
processData: false  #请求发送的数据是否转换为查询字符串