AJAX与jQuery中的Ajax学习总结(一)

一个HTTP请求由4个部分组成: 服务器返回的HTTP响应包含3部分:

1,HTTP请求方法或动作(verb)

2,正在请求的URL

3,一个可选的请求头集合,其中可能包括身份验证信息

4,一个可选的请求主体

1,一个数字和文字组成的状态码,用来显示请求的成功和失败。

2,一个响应头集合

3,响应主体

HTTP请求的各部分有指定的顺序,请求方法和URL首先到达,然后是请求头,最后是请求主体。

请求HTTP

1.第一件事就是实例化XMLHttpRequest: var request = new XMLHttpRequest();

2.下一步是调用XHR对象的--open()方法,open方法的两个必需部分(“GET/POST”,URL)

URL是请求的主题,是相对于文档的URL(如果是绝对路径,协议和主机和端口通常必须匹配文档对应的内容,否则跨域的请求通常会报错)

3.(若没有主体,就忽略这一步)使用XHR发起HTTP请求倒数第二步,是制定可选的请求主体。(POST请求通常拥有主体,同时它应该匹配使用setRequestHeader()制定的“Content-Type”头)

4.向服务器发送send()方法

request.send()参数可选。由于get请求绝对没有主体,所以应该传递null或省略这个参数。有主体的就传主体。

取得响应

一个完整的HTTP相应,由状态码,响应头集合,响应主体组成。

状态码:status和statusText属性,以数字和文本的形式返回HTTP状态码:

readyState的值
常量 含义
unsent 0 open()尚未调用
opened 1 open已调用
headers_received 2 接受到头部信息
loading 3 接收到响应主体
done 4 响应完成

理论上,每次readyState属性改变都会出发readystatechange时间,实际上,属性改为0或1时可能没有出发这个事件。

1,异步响应

由于本身性质,异步处理HTTP响应式最好的方式,然而XHR也支持同步响应。如果把false作为第三个参数传递给open(),那么send()方法将阻塞直到请求完成。

2.响应解码

编码请求主体

HTTP POST请求包括一个请求主体,它包含客户端传递给服务器的数据

1.表单编码的请求

表单数据编码格式有一个正式的MIME类型(POST提交这种顺序的表单数据时,必须设置“conten-type”请求头为下列值)

application/x-www-form-urlencoded

2.JSON编码的请求

JSON.stringify()

3.XML编码的请求(XML有时也用于数据传输的编码)

4.上传文件(通过表单上传)

5.multipart/form-data请求(当HTML表单同时包含文件上传元素和其他元素时,Content-Type应设置为“multipart/form-data”)


Http进度事件

XHR2这个新的事件模型中,XHR对象在请求的不同阶段触发不同类型的事件,所以不再需要检查readyState属性。

触发步骤:调用send()时,触发单个loadstart事件。

                当事件完成,会触发load事件。

                load事件程序检查status状态码来确定HTTP响应。

HTTP请求无法完成有这3种情况:

load(正常完成),abort(中止),timeout(超时),error(错误)


注:内容总结来源:《JavaScript权威指南》

你可能感兴趣的:(学习日志)