目录
Ajax是一个技术的名称, 而以前我们具体使用的是axios.js
插件来发送请求 ,但是其实axios.js也是一个库, 内部是原生JS代码, 实际它是对原生的代码进行了封装。
Ajax如果用原生JS实现, 需要使用window提供的一个构造函数, 叫XMLHttpRequest
XMLHttpRequest
使用格式
<script>
// 1. 创建一个xhr对象
let xhr = new XMLHttpRequest()
// 2. 设置请求方式和请求地址
xhr.open(请求方式, 请求地址)
// 3. 发送请求
xhr.send()
// 4. 监听load(请求成功)事件 ==> 可以获取响应数据
xhr.addEventListener('load', function() {
console.log(xhr.response) // 服务器返回的数据
})
</script>
代码运行流程
主要的4个步骤
1.创建一个xhr对象
2.调用xhr.open()函数配置
3.调用xhr.send()函数发出请求
4.监听load事件等待结果
Ajax_原生query传参
原生Ajax传递查询参数 ,在url?后面拼接查询参数
<script>
let xhr = new XMLHttpRequest()
// 复习: 之前说过query查询参数要携带在url?后面
// 格式: 参数名=值&参数名=值
xhr.open(请求方式, 请求地址?传递的参数)
xhr.send()
xhr.addEventListener('load', function() {
let result = JSON.parse(xhr.response)
console.log(result);
})
</script>
Ajax_原生POST
let xhr = new XMLHttpRequest()
xhr.open('post', '请求地址')
//需要携带请求头Content-Type和固定值指定传递的请求体内容类型, 让后端用对应方式解析
// 要注意: 在open后send前之间设置
xhr.setRequestHeader('content-type', 'application/json')
// 请求体要在这里携带
// 请求体支持三种内容类型, 用哪个还是要和后端对上
const d = { bookname: '你是谁', author: '你猜', publisher: '哈哈哈' }
xhr.send(JSON.stringify(d))
xhr.addEventListener('load', function () {
console.log(xhr.response) // 服务器返回的数据
})
请求体的三种类型:
1.application/json
2.multipart/form-data
3.application/x-www.....
版权声明:本文为QingYu1939444235原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。