Ajax是异步Javascript与xml的缩写,能向服务器异步发送和接收数据,然后用javascript解析。
1、必须实例化XMLHttpRequest( )对象
var request = new XMLHttpRequest( )
2、调用XMLHttpRequest对象的open( )方法指定请求的两个必须部分:方法和URL。
request.open( “GET”, “url”)
第一个参数常用 “GET”或“POST”,
GET常用于常规请求,URL完全指定请求资源,请求对服务器没有任何副作用及服务器的响应是可缓存的。
POST方法常用于表单请求,在请求主体中包含额外数据,且这些数据常存储在服务器数据库中(有副作用)。
URL用相对文档的URL,或服务器明确允许跨域时,使用绝对URL
也有“DELET”,“OPTIONS”,“PUT”,“HEAD”
3、如果有请求头
request.setRequestHeader(“content-Type”, “text/plain”);其他大部分头都无法设置,防止伪造。
4、最后一步,传递可选的请求主体,向服务器发送它。
使用send( )方法。GET请求没有主体。POST方法通常用主体,并匹配请求头一起使用
request.send( null );
二、HTTP组成部分
1、一个HTTP请求由4部分组成:
HTTP请求方法或动作
正在请求的URL
一个可选的请求头集合
一个可选的请求主体
2、服务器返回的HTTP响应包含3部分
一个数字和文字组成的状态吗,显示成功或失败
一个响应头集合
响应主体
数据必须通过post方法发送给服务器
取得响应
status、statusText,以数字和文本形式返回HTTP状态码
getResponseHeader( ),getAllResponseHeader( )能查询响应头.(setResponseHeader设置响应头)
responseText属性得到文本形式
得到响应通知用readstatechange事件
包含状态readyState 整数
0 UNSENT open( )尚未调用
1 OPENDED open( )已调用
2 HEADERS_RECEIVED 接收到头部信息
3 LOADING 接收到响应主体
4 DONE 响应完成
var request = new XMLHttpRequest( );
request.open(“GET”, url,true, username, secret);
request.onreadystatechange = function( ) {
if (request.readyState ===4 && request.status ===200) {//因为是是异步的所以要写结合已发送并且请求成功
var type = request.getResponseHeader(“Content-Type”);
if (type.match(/^text/))
callback(request.responseText( );
};
request.send(null);
request.open 第二个参数通常是true,表示异步
MIME类型
描述消息内容类型的因特网标准
“text/plain”纯文本
“text/html”“text/css”,”application/json"
XMLHttpRequest对象的responseText属性得到响应文本
编码请求主体
表单编码请求 HTML表单通过POST方法发送给服务器,而编码后的表单数据则用作请求主体。格式如下 A=B&C=D&E=F
需设置表头MIME类型为application/x-www-form-urlencoded
网友评论