写在前面:
之前的学习总是很松散,没有去做总结,也没有对所学的知识点进行梳理,这就造成了学习效率偏低的情况,对知识点的掌握总是很浅层次的了解而已,所以接下来的学习我想我可以通过博客记录的学习方式,完善自身,对知识点加深理解.
-
对ajax的简单认识
早期的web应用程序的主要目的是为了可以让服务器的信息在网页上得以呈现.
一般常用的方式就是使用浏览器在地址栏输入地址,然后创建与服务器的连接,获取服务器的数据.这种交互方式就意味着如果用户需要对页面的部分数据进行刷新时,
亦或者进行一些表单处理时,需要刷新整个页面,
web开发人员也无法直接使用编程的方式对这种交互(浏览器客户端与服务端的请求与响应).AJAX就是为了解决上述问题而面世的,开发人员可以调用浏览器提供的API,
对服务器发起请求,并且获取数据,而不是去刷新整个页面. -
AJAX的简单使用
通常使用ajax进行网络编程包括下面四个步骤
-
创建一个代理请求对象(XMLHttpRequest对象),即需要一个媒介去访问服务器
-
代理请求对象建立与服务器的连接
-
通过连接向服务器发出请求
-
对代理请求的状态变化进行处理
//创建一个代理请求对象 var obj=new XMLHttpRequest() //与服务器建立连接通道 obj.open("GET","http://jsonplaceholder.typicode.com/users") //向服务器发出请求 obj.send(); //根据代理对象的状态响应进行相应的处理 obj.onreadystatechange=function(){ if(obj.readyState==4){ var res=obj.responseText; console.log(res); } }
-
-
代理对象的五个状态(readystate)
onreadychange事件的触发是因为代理对象的readystate的变化而产生,所以我将梳理一下代理对象进行数据交换时的五个状态值readystate 说明 0 代理已经被创建,但是没有建立连接(open) 1 代理已经通过open方法建立了连接 2 send()方法已经被调用,并且返回了状态行和响应头 3 响应体正在下载中,即响应体中包含了部分数据 4 响应体已经下载完毕 上述的状态如果发生变化将会触发onreadystate事件,我们通常在readyState=4的时候,去获取响应体,此时响应体已经下载完毕.
-
GET请求与POST请求
GET传递参数时可以使用url直接传递参数
obj.open("GET","http://jsonplaceholder.typicode.com/users?id=1")
POST传递参数时,不能直接使用url传递参数,需要把想传递的参数作为send()方法的参数.
并且如果传递的参数的格式不同,也需要设置不同的请求头,以便于服务器去解析.
比如
1.使用post请求且传递参数为urlencoded格式obj.open("POST","http://jsonplaceholder.typicode.com/users") obj.setRequestHeader("conten-Type","application/x-www-form-urlencoded") obj.send("id=1")
2.使用post请求且传递参数为json格式
obj.open("POST","http://jsonplaceholder.typicode.com/users") obj.setRequestHeader("conten-Type","application/json) obj.send('"id"=1')
测试网址好像不支持post方式