1、使用XMLHttpRequest对象——ajax基础笔记

XMLHttpRequest最早是在 IE5 中以activeX组件形式实现。XMLHttpRequest并不是一个W3C标准。

IE所XMLHttpRequest实现为一个ActiveX对象,其他浏览器把它实现为一个本地JavaScript对象。

创建XMLHttpRequest对象

var xmlHttp;
function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		}
	}
}

XMLHttpRequest方法和属性

  • 标准XMLHttpRequest操作

  • abort()——停止当前请求
  • getAllResponseHeaders()——把HTTP请求的怕有响应首部作为键/值对返回
  • getResponseHeader('header')——返回指定首部的串值
  • open('method','url')——建立对服务器的调用。method参数可以是GET、POST或PUT。url可以是相对URL或绝对URL。这个方法还包括3个可选
  • send(content)——向服务器发送请求
  • setRequestHeader('header','value')——把指定首部设置为所提供的值。在设置任何首部之前必须调用open()

void open(string method, string url, boolean asynch, string username, string password):第三个参数指示异步的还是同步的,默认值为true,表示请求本质上是异步的。如果这个参数为false处理会等待,直到从服务器返回响应为止。最后两个参数允许你指定一个特定的用户和密码。

void send(content):向服务器发送请求。如果请求声明为异步的,这个方法就会立即返回,否则直到接收到响应为止。参数可以是DOM对象的实例、输入流,或者串。体入这个方法的内容会作为请求体的一部分发送。

void setRequestHeader(string header, string value):这个方法为HTTP请求中一个给定的首部设置值。这个方法必须在调用open()之后才能调用

  • 标准 XMLHttpRequest属性

onreadystatechange——每个状态改变时都会触发这个处理器,通常会调用一个JavaScript函数

readyState——请求的状态,有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成

responseText——服务器的响应,表示为一个文本串

responseXML——服务器的响应,表示XML,这个对象可以解析为一个DOM对象

status——服务器HTTP状态码(200对应OK,404对应页面未找到,等等)

statusText——HTTP状态码的相应文本(OK或页面未找到等等)

服务器返回内容类型

服务器返回的内容要设置成text/xml、text/plain,因为XMLHttpRequest对象只能处理text/html类型的结果。

不缓存页面内容

使用浏览器不会在本地缓存结果,服务器端需设置以下HTTP头信息:

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

response.setHeader("EXpires",0);

 

客户端JavaScript设置:

request.setRequestHeader("Cache-Control","no-cache");
request.setRequestHeader("Pragma","no-cache");
request.setRequestHeader("EXpires",0);

回调方法通常写法

function callback(){
  if(xmlHttp.readyState == 4){
    if(xmlHttp.status == 200){
      //do something interesting here
    }
  }
}

POST方式请求头所需设置

xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值