# AJAX
# 1.什么是AJAX
AJAX 是 『Asynchronous JavaScript and XML』的缩写。它是指一种创建交互式网页应用的网页开发技术。
客户端与服务器,可以在不刷新整个浏览器的情况下,与服务器进行异步通讯的技术
# 2.原生 AJAX 请求处理
方法/属性 | 描述 |
---|---|
open(method,url,async) | 规定请求的类型、URL 以及是否异步处理请求。 method:请求的类型;GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false(同步) |
send(string) | 将请求发送到服务器。string:仅用于 POST 请求 |
status | 200: "OK" |
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
readyState | 存有 XMLHttpRequest 的状态。请求发送到后台后,状态会从 0 到 4 发生变化。 0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪 |
onreadystatechange | 每当 readyState 属性改变时,就会调用该函数。 |
// get请求
// 1.创建对象
var xhr = new XMLHttpRequest();
// 2.连接服务器,设置(请求参数,请求地址,同步还是异步)
xhr.open('GET', '/api/user?id=333', true);
// 3.发送请求
xhr.send();
// 4.监听事件,获取返回的数据
xhr.onreadystatechange = function (e) {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
// post请求
// 1.创建对象
var xhr = new XMLHttpRequest();
// 2.连接服务器,设置(请求参数,请求地址,同步还是异步)
xhr.open('POST', '/api/user', true);
// 3.POST请求需要设置此参数(设置请求头)
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
// 4.发送请求
xhr.send('name=33&ks=334');
// 5.监听事件,获取返回的数据
xhr.onreadystatechange = function (e) {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 3.请解释一下 JavaScript 的同源策略
同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。
# 4. 如何解决跨域问题
1. 跨域的概念:
协议、域名、端口都相同才同域,否则都是跨域
2. 解决跨域问题:
1). 使用JSONP(json+padding)把数据内填充起来 2). CORS 方式(跨域资源共享),在后端上配置可跨域 3). 服务器代理,通过服务器的文件能访问第三方资源(比如nginx)
← HTTP 浏览器缓存于渲染机制 →