ajax-FormData使用

FormData对象的使用

1.准备表单
在这里插入图片描述
2.将html表单转换为formData对象

在这里插入图片描述
3.提交表单对象
在这里插入图片描述
在这里插入图片描述

FormData对象的实例方法

1.获取表单对象中属性的值
formData.get(‘key’)
2.设置表单对象中属性的值
formData.set(‘key’, ‘value’)
3.删除表单对象中属性的值
formData.delete(‘key’)
4.向表单对象中追加属性值
formData.append(‘key’, ‘value’);
注意:set方法与append方法的区别是,在属性名已存在的情况下,set会覆盖已有键名的值,append会保留两个值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 创建普通的html表单 -->
    <form action="" id="form">
		<input type="text" name="username">
		<input type="password" name="password">
		<input type="button" id="btn" value="提交">
    </form>
    <script>
        //获取按钮
        var btn = document.getElementById('btn');
        //获取表单
        var form = document.getElementById('form');
        //为按钮添加点击事件
        btn.onclick = function(){
            //将普通的html表单转换为表单对象
            var formData = new FormData(form);
            //创建ajax对象
            var xhr= new XMLHttpRequest();
            //对ajax对象进行配置
            xhr.oepn('post', 'http://localhost:3000/formData');
            //发送ajax请求
            xhr.send(formData);
            //监听xhr对象下面的onload事件
            xhr.onload = function(){
                //对象http状态码进行判断
                if(xhr.status == 200){
                    console.log(xhr.responseText);
                }
            }
        }
    </script>
</body>
</html>
app.post('/formData', (req, res) => {
	// 创建formidable表单解析对象
	const form = new formidable.IncomingForm();
	// 解析客户端传递过来的FormData对象
	form.parse(req, (err, fields, files) => {
		res.send(fields);
	});
});

在这里插入图片描述
FormData二进制文件上传
在这里插入图片描述
在这里插入图片描述

FormData文件上传进度显示

//当用户选择文件的时候
file.onchange = function(){
    //文件上传过程中持续触发onprogress事件
    xhr.upload.onprogress = function(ev){
        //当前上传文件大小/文件总大小 再将结果转换为百分数
        //将结果赋值给进度条的宽度属性
        bar.style.width = (ev.loaded/ev.total) * 100 + '%';
    } 
}

FormData 文件上传图片即时预览

在我们将图片上传到服务器以后,服务器通常会将图片地址作为响应数据传递到客户端,客户端可以从响应数据中获取图片地址,然后将图片再显示在页面中。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值