Ajax是Asynchronous JavaScript and XML的缩写,即异步的JavaScript和XML技术。它是一种利用JavaScript和XML进行前后端数据交互的技术,使得网页能够异步地向服务器发起请求和接收响应,而不需要刷新整个页面。
XMLHttpRequest对象是Ajax的核心技术之一,它是在JavaScript中用于发起HTTP请求的对象。它可以异步地向服务器请求数据,并能够处理服务器响应的数据。
let xhr = new XMLHttpRequest(); // 创建XMLHttpRequest对象
xhr.open('GET', '/api/data', true); // 初始化请求,参数分别为请求方式、请求地址、是否异步
xhr.onreadystatechange = function () { // 监听状态变化
if (xhr.readyState === 4 && xhr.status === 200) { // 判断请求是否完成,并且响应是否成功
console.log(xhr.responseText); // 处理服务器响应的数据
}
}
xhr.send(); // 发送请求
Ajax基于HTTP协议,通过HTTP请求和响应来完成前后端数据交互。HTTP请求包括请求头和请求体,HTTP响应包括响应头和响应体。
// HTTP请求
GET /api/data HTTP/1.1
Host: www.example.com
Accept: application/json
// HTTP响应
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 100
{
"name": "张三",
"age": 18
}
JSON是一种轻量级的数据交换格式,也是Ajax中常用的数据格式。它使用JavaScript对象表示数据,可以方便地在JavaScript中进行解析和操作。
// JSON数据格式
{
"name": "张三",
"age": 18
}
由于浏览器的同源策略限制,Ajax只能向同一域名下的服务器发起请求。为了解决跨域请求的问题,可以使用JSONP、CORS等技术。
JSONP是一种利用