ajax发送请求
首先先来点文字简述下五大步:
(1)创建异步对象。即 XMLHttpRequest 对象。
(2)使用open方法设置请求的参数。包括:请求的方法、请求的url。
(3)设置请求头
(4)注册事件。 onreadystatechange事件,状态改变时就会调用。如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
(5)用send方法发送请求。
接下来就是把这五句代码分别用代码给你们实现出来
// 1. 创建请求对象
var xhr = new XMLHttpRequest();
// 2. 调用open方法 设置请求方式和请求路径
// 这里注意get请求 直接在路径后面拼接参数就行了 不需要在最后的send方法里面传参
xhr.open("get", "data.php?name=jack&age=18");
// 而post请求是在后面的send方法后进行传递参数 但是必须设置请求头
// xhr.open("post", "data.php");
// 3. 设置请求头
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// 4. 监听响应完成事件
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
}
// 5. 发送请求
xhe.send("name=rose&age=99"); // post请求在send的参数传参 get请求 直接拼接路径
注意、:
我的的第二段注释:注意一下 get与post传递参数的区别。两种写法是不同。
get以及post用方法的区别
这里用我个人简短的话做些区别,希望自己给你们一些引导:
1.首先就是get请求是拼接url,post请求传的是请求体。在上面也可以看见两者的区别。
2.请求缓存:get请求会被缓存,而post请求不会。原因就是get是url的请求,没有请求体。因此缓存不了。
3. 保留浏览器历史记录:get可以,而post不能 原因还是因为get的url请求!
4. 用处:get常用于取回数据,post用于提交数据. 在http协议本身是不限制字符串长度,是浏览器限制了get的url里面的长度。(http协议本身是不限制字符串长度,是浏览器限制了get的url里面的长度。)
5. 安全性:相对于数据被他人截取方面,post比get安全,还是因为post是请求体,不会在url上被劫持!
以上是本人在学习过程中总结出来的,也希望给你们对ajax的学习有些帮助。