原生JS中的Ajax
4几种访问服务器的方式
1.直接在浏览器地址栏输入网址
2.使用a标签的href属性
3.使用window.location.href
4.ajax: 在页面不刷新的情况下向服务器请求数据(重点)
使用ajax发送数据的步骤
XMLHttpRequest : http请求对象,负责实现ajax技术(小黄人)= xhr
(1)创建XMLHttpRequest对象
//1.创建小黄人对象XMLHTTPRequest
let xhr = new XMLHttpRequest()
(2)设置请求
//2.告诉小黄人服务器地址
xhr.open("get", "https://autumnfish.cn/api/joke")
(3)发送请求
//3小黄人出发去指定地址取外卖(数据)
xhr.send()
(4)注册响应回调函数
//4小黄人把取回的外卖送到你家门口
/* 这个函数不是立即执行的,而是等服务器把数据响应返回才会执行(PS:什么时候执行取决于你的网速快慢) */
xhr.onload = function() {
console.log(xhr.responseText)
document.body.innerText = xhr.responseText
}
ajax 请求方法get和post区别
get请求: 直接在url后面拼接参数,参数在url中,安全性不高
ajax post请求:
1.需要设置请求头(固定语法):xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded')
注意:这是固定格式,错一个字母都不行,强烈建议复制粘贴
> 2.使用xhr的send方法发送参数: xhr.send('参数名=参数值')
注意:不要加前面的?
ajax post代码演示
//(1).实例化ajax对象
let xhr = new XMLHttpRequest()
//(2).设置请求方法和地址
xhr.open("post", "https://autumnfish.cn/api/user/register")
//(3).设置请求头(post请求才需要设置)
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
//(4).发送请求 : 参数格式 'key=value'
xhr.send("username=admin")
//(5).注册回调函数
xhr.onload = function() {
console.log(xhr.responseText)
}
ajax() 都可以发(区别就是传参不同)
post(url,data,success,datatype):本质上只能发送post请求 get(url,data,success,datatype):本质上只能发送get请求
同步与异步的区别(官方解释)
同步提交:当用户发送请求时,当前页面不可以使用,服务器响应页面到客户端,响应完成,用户才可以使用 页面。
异步提交:当用户发送请求时,当前页面还可以继续使用,当异步请求的数据响应给页面,页面把数据显示出来 。