Web前端开发之前后端交互05——XMLHttpRequest[Level2]、JQ文件上传

本文探讨了XMLHttpRequest Level 2的新特性,如何设置HTTP请求超时,以及FormData对象在文件上传中的应用。通过实例展示了AJAX和jQuery在文件上传中的实现,并提供了loading效果的实现方法。涵盖了前端技术如AJAX、FormData和jQuery的结合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

XMLHttpRequest[Level2]:

 设置HTTP请求的时限:​

FormData对象:​

文件上传:

 xhr上传文件请求:

JQ的文件上传:

实现loading效果:


XMLHttpRequest[Level2]:

在第一代XMLHttpRequest中我们智能传输文字信息,文件无法传入。而LV2有一些新特性:

 设置HTTP请求的时限:

示例代码:

	let xhr=new XMLHttpRequest()
	xhr.open('GET','http://www.liulongbin.top:3006/api/getbooks')
	xhr.send()
	xhr.onreadystatechange=function () {
		if(xhr.readyState===4&&xhr.status===200){
            console.log(xhr.responseText)
		}
    }

    xhr.timeout=30
	xhr.ontimeout=function () {
        console.log('Time Out')
    }

FormData对象:

文件上传:

 

 代码示例:

<input type="file" name="file1" id="file1">
<button id="btnUpload">Upload</button>
<br>
<img src="" alt="" id="img" width="800">

<script>
	let btn=document.querySelector('#btnUpload')
	btn.addEventListener('click',function () {
		let file=document.querySelector('#file1').files
		if(file.length<=0){
            console.log('Please upload files!')
		}else{
            console.log(file)
		}
    })
</script>

 代码输出:

 

 xhr上传文件请求:

 

 此处使用到BS的进度条样式。

JQ的文件上传:

 实现原理代码:

 实际代码:

	//jQ文件上传方法
    let fd=new FormData()
	$('#btnUpload').on('click',()=>{
        let getfile=$('#file1')[0].files
		if(getfile.length<=0){
            console.log('Please upload file!')
		}else{
            //实例化formdata,用于遍历所有表单元素,很方便
            fd.append('avatar',getfile[0])
            console.log(fd)
			$.ajax({
				type:'POST',
				url:'http://www.liulongbin.top:3006/api/upload/avatar',
				data:fd,
				contentType:false,
				processData:false,
				success:res=>{
                    console.log(res)
				}
			})
		}
	})

实现loading效果:

 当然我们也有ajax结束的代码。

 实际代码演示:

			$(document).ajaxStart(function () {
				$('#imgInfo').toggleClass('hide')
            })
            $(document).ajaxComplete(function () {
                $('#imgInfo').toggleClass('hide')
            })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值