ajax 的全称 Asynchronous JavaScript and XML (异步 JavaScript 和 XML)。
ajax 是一种创建交互式网页应用的网页开发技术。其中最核心的依赖是浏览器提供的 XMLHttpRequest 对象,是这个对象使得浏览器可以发出 HTTP 请求与接收 HTTP 响应。实现了在页 面不刷新的情况下和服务器进行交互
ajax 使用方法: 1. 创建 XMLHttpRequest 对象 2. 使用 open 方法指定要请求的地址、类型和方式。 3. 使用 send 方法发送请求,如果需要传参: get 方式要将参数拼接到 URL 后边,参数间&分割。例:’index.php?name=张三&age=18’ post 方式可以将参数放到 send()里。例:send(‘name=张三&age=18’) 4. 绑定 onreadystatechange 事件,判断 readyState 和 status 的状态。 5. 接收数据,通过 json转换使用
要注意的是本地json属于静态,不能使用post请求
let xhr = new XMLHttpRequest(); xhr.open('get', 'js/index.json', true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { let text = xhr.responseText; let data = JSON.parse(text); console.log(data); } }
get 与 post 的区别: get 是将参数包含在 URL 中明文传输,不安全。而 post 是通过 request body 传递参数, 对于用户来说是不可见的,所有更安全。 get 传输数据量较小,因为 URL 有长度限制,post 传输的数据量较大,一般被默认为不 受限制。 对于参数的数据类型,get 只接受 ASCII 字符,而 post 没有限制。 get 请求时只会产生一个 TCP 数据包,get 比 post 更快。 get 请求参数会被完整保留在浏览器历史记录里,而 post 中的参数不会被保留