ajax是什么呢?他就是异步的javascript,用js写个完整的ajax代码并不是很多,它是能够在不刷新页面的情况下,让网页局部数据更新的数据
1. 创建对象
var xhr = new XMLHttpRequest();
2. 发送请求
第一个参数:get和post两种方式
第二个参数:请求的文件路径
第三个参数:true 异步; false 同步
xhr.open("GET","hot.json",true);
3.等待响应
xhr.readyState 有以下值:
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
1. responseText 字符串格式的数据(json)
2.JSON.parse(request.responseText) json格式的数据
3. eval函数 JSON的字符串解析成JSON数据格式
注意:eval格式:eval("("+this.responseText+")") 需要拼接"()";
由于json数据的格式是”{}”,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式
每次网络请求的状态都会调用这个方法。
xhr.onreadystatechange = function(){
console.log(this.readyState);
}
// onload请求完成后执行的函数
xhr.onload = function(){
console.log(this.responseText);
console.log(JSON.parse(this.responseText));
console.log(eval("("+this.responseText+")"));
}
最后:ajax请求数据是不支持跨域的,他请求的地址必须与自身页面的协议、主机名、端口号都相同,才能请求成功,所以要是想跨域请求可以使用iframe,script标签等其他的方式来实现
网友评论