JavaScript学习笔记

AJAX编程

2016-11-11  本文已影响0人  左耳击水兽

即 Asynchronous Javascript And XML,AJAX 不是一门的新的语言,而是对现有持术的综合利用。本质是在HTTP协议的基础上以异步的方式与服务器进行通信。

异步

7.png 8.png

现实生活中的一个例子
打电话是同步 发消息是异步
XMLHttpRequest可以以异步方式的处理程序。

XMLHttpRequest

浏览器内建对象,用于在后台与服务器通信(交换数据) ,由此我们便可实现对网页的部分更新,而不是刷新整个页面。

见代码示例8-1.html和8-1.php

9.png

![Upload 11.png failed. Please try again.]

由于XMLHttpRequest本质基于HTTP协议实现通信,所以结合HTTP协议和上面的例子我们分析得出如下结果

请求

xhr.open('get','index.php');
xhr.setRequestHeader('Conten-Type','application/x-www-form-urlencoded');

get方式请求可以不设置

xhr.send(null);

响应

12.png

上图中的onreadystatechange是Javascript的事件的一种,其意义在于监听XMLHttpRequest的状态

xhr.status   // 状态码
xhr.statusText  //状态信息
//获取指定头信息
xhr.getResponseHesder('Content-Type);
//获取所有响应头信息
xhr.getAllResponseHeaders();
xhr.responseText;
xhr.responseXML;

API详解

xhr.open() 发起请求,可以是get、post方式
xhr.setRequestHeader() 设置请求头
xhr.send() 发送请求主体get方式使用xhr.send(null)
xhr.onreadystatechange = function () {} 监听响应状态
xhr.readyState = 0时,UNSENT open尚未调用
xhr.readyState = 1时,OPENED open已调用
xhr.readyState = 2时,HEADERS_RECEIVED 接收到头信息
xhr.readyState = 3时,LOADING 接收到响应主体
xhr.readyState = 4时,DONE 响应完成
不用记忆状态,只需要了解有状态变化这个概念
xhr.status表示响应码,如200
xhr.statusText表示响应信息,如OK
xhr.getAllResponseHeaders() 获取全部响应头信息

xhr.getResponseHeader('key') 获取指定头信息
xhr.responseText、xhr.responseXML都表示响应主体

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
上一篇 下一篇

猜你喜欢

热点阅读