加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Django 原生Ajax详解

发布时间:2020-12-15 17:13:31 所属栏目:大数据 来源:网络整理
导读:Ajax主要就是使用 【XmlHttpRequest】对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件)。 1. ?XmlHttpRequest对象介绍 XmlHttpRequest对象的主要方法: a. void open(String method,String url,Boole

Ajax主要就是使用 【XmlHttpRequest】对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件)。


1. ?XmlHttpRequest对象介绍

XmlHttpRequest对象的主要方法:

a. void open(String method,String url,Boolen async)

? ?用于创建请求

? ?参数:

? ? ? ?method: 请求方式(字符串类型),如:POST、GET、DELETE...

? ? ? ?url: ? ?要请求的地址(字符串类型)

? ? ? ?async: ?是否异步(布尔类型)

b. void send(String body)

? ? 用于发送请求

? ? 参数:

? ? ? ? body: 要发送的数据(字符串类型)

c. void setRequestHeader(String header,String value)

? ? 用于设置请求头

? ? 参数:

? ? ? ? header: 请求头的key(字符串类型)

? ? ? ? vlaue: ?请求头的value(字符串类型)

d. String getAllResponseHeaders()

? ? 获取所有响应头

? ? 返回值:

? ? ? ? 响应头数据(字符串类型)

e. String getResponseHeader(String header)

? ? 获取响应头中指定header的值

? ? 参数:

? ? ? ? header: 响应头的key(字符串类型)

? ? 返回值:

? ? ? ? 响应头中指定的header对应的值

f. void abort()

? ? 终止请求


XmlHttpRequest对象的主要属性:

a. Number readyState

? ?状态值(整数)

? ?详细:

? ? ? 0-未初始化,尚未调用open()方法;

? ? ? 1-启动,调用了open()方法,未调用send()方法;

? ? ? 2-发送,已经调用了send()方法,未接收到响应;

? ? ? 3-接收,已经接收到部分响应数据;

? ? ? 4-完成,已经接收到全部响应数据;

b. Function onreadystatechange

? ?当readyState的值改变时自动触发执行其对应的函数(回调函数)

c. String responseText

? ?服务器返回的数据(字符串类型)

d. XmlDocument responseXML

? ?服务器返回的数据(Xml对象)

e. Number states

? ?状态码(整数),如:200、404...

f. String statesText

? ?状态文本(字符串),如:OK、NotFound...

2、跨浏览器支持

XmlHttpRequest

IE7+,Firefox,Chrome,Opera,etc.

ActiveXObject("Microsoft.XMLHTTP")

IE6,IE5

代码示例:

<!DOCTYPE?html>
<html>
<head>
????<meta?charset="UTF-8">
????<title></title>
</head>
<body>

????<h1>XMLHttpRequest?-?Ajax请求</h1>
????<input?type="button"?onclick="XmlGetRequest();"?value="Get发送请求"?/>
????<input?type="button"?onclick="XmlPostRequest();"?value="Post发送请求"?/>

????<script?src="/statics/jquery-1.12.4.js"></script>
????<script?type="text/javascript">

????????function?GetXHR(){
????????????var?xhr?=?null;
????????????if(XMLHttpRequest){
????????????????xhr?=?new?XMLHttpRequest();
????????????}else{
????????????????xhr?=?new?ActiveXObject("Microsoft.XMLHTTP");
????????????}
????????????return?xhr;

????????}

????????function?XhrPostRequest(){
????????????var?xhr?=?GetXHR();
????????????//?定义回调函数
????????????xhr.onreadystatechange?=?function(){
????????????????if(xhr.readyState?==?4){
????????????????????//?已经接收到全部响应数据,执行以下操作
????????????????????var?data?=?xhr.responseText;
????????????????????console.log(data);
????????????????}
????????????};
????????????//?指定连接方式和地址----文件方式
????????????xhr.open('POST',?"/test/",?true);
????????????//?设置请求头
????????????xhr.setRequestHeader('Content-Type',?'application/x-www-form-urlencoded;?charset-UTF-8');
????????????//?发送请求
????????????xhr.send('n1=1;n2=2;');
????????}

????????function?XhrGetRequest(){
????????????var?xhr?=?GetXHR();
????????????//?定义回调函数
????????????xhr.onreadystatechange?=?function(){
????????????????if(xhr.readyState?==?4){
????????????????????//?已经接收到全部响应数据,执行以下操作
????????????????????var?data?=?xhr.responseText;
????????????????????console.log(data);
????????????????}
????????????};
????????????//?指定连接方式和地址----文件方式
????????????xhr.open('get',?true);
????????????//?发送请求
????????????xhr.send();
????????}

????</script>

</body>
</html>


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读