JS基础总结(6)—— HTTP请求

本文总结了JavaScript中的Ajax技术,包括XMLHttpRequest的使用和content-type的设定。探讨了HTTP跨域问题,详细阐述了Preflighted Request及多种解决方案,如JSONP、CORS、Web Socket等。此外,还介绍了HTTP协议的基础知识,如TCP的三次握手和四次挥手,以及HTTPS的安全机制。
摘要由CSDN通过智能技术生成

1. Ajax

Ajax: Asynchronous JavaScript + XML
能够向服务器请求额外数据而无须卸载页面

1.1 XMLHttpRequest

原生进行http请求方法如下:

const request = new XMLHttpRequest()
// 以下是两种状态监听方案
// 1. 使用onreadystatechange监听XMLHttpRequest对象的状态
request.onreadystatechange = function () {
   
    // readyState: 0: 未调用open(), 1: 调用open()未调用send()
    // 2. 调用send()未收到响应, 3. 收到部分响应数据 4. 收到全部数据
    if (request.readyState === 4) {
   
        console.log('请求完成了')
    } else if (request.readyState === 3) {
   
        console.log('收到数据了')
    }
}
// 2. 使用ProgressEvent对象监听XMLHttpRequest状态
// ProgressEvent对象: 测量如 HTTP 请求等底层流程进度的事件
request.onload = function (event) {
    // 相当于readyState为4
    console.log('收到数据了:' + event.currentTarget.responseText)
}
request.onprogress = function (event) {
    // 相当于readyState为3
    if (event.lengthComputable && event.totalSize) {
   
        console.log('当前加载进度为' + 
        (event.position / event.totalSize).toFixed(2) + '%')
    }
}
request.onerror = function (err) {
   
    console.log(err)
}
request.timeout = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值