ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ajax

2020-11-27 23:59:04  阅读:219  来源: 互联网

标签:xmlhttp 请求 xhr Ajax 服务器 XMLHttpRequest onreadystatechange


Ajax

文章目录


AJAX = Asynchronous JavaScript and XML
异步的 JavaScript 和 XML
与服务器交换数据

一.XMLHttpRequest对象

	XMLHttpRequest 对象 (异步的与服务器交换数据)
	XMLHttpRequest 用于在后台与服务器交换数据
	创建 XMLHttpRequest 对象:
		new XMLHttpRequest();

二.向服务器发送请求:

	XMLHttpRequest对象.open(method请求方式,url请求的url,async 同步还是异步)
	第一个参数:method:请求的类型;GET 或 POST....
	第二个参数:url:文件在服务器上的位置
	第三个参数:async:true(异步)或 false(同步)
	通过XMLHttpRequest对象.send()
	发送信息:在地址后?写信息,如?fname=Henry&lname=Ford

	setRequestHeader(header,value) 来添加 HTTP 头
		header: 规定头的名称,value: 规定头的值

	url:文件可以是任何类型的文件,比如 .txt 和 .xml
	XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true

	异步则:
	xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
       
    }
}

三.服务器响应

responseText获得字符串形式的响应数据
responseXML获得 XML 形式的响应数据:
	如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析

四.onreadystatechange 事件

	当readyState改变时,触发 onreadystatechange 事件
	在此事件中对于服务器响应的数据进行操作
	xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        满足条件执行这中的代码
    }
}

readyState:
	0: 请求未初始化
	1: 服务器连接已建立
	2: 请求已接收
	3: 请求处理中
	4: 请求已完成,且响应已就绪
	
status:
	状态码:200: "OK"
				404: 未找到页面

例如:

 //1.创建请求对象
  var xhr=new XMLHttpRequest();
  xhr.open('get','',true)//get:请求方式,true:表示异步操作
  //2.建立请求连接
  xhr.onreadystatechange=function () {
    if(xhr.readyState == 4 && xhr.status == 200){//如果请求成功
      console.log(JSON.parse(xhr.responseText))//获取请求结果
      var data=JSON.parse(xhr.responseText),txt='';
      for(var i=0;i<data.length;i++){
        txt+='<li>'+data[i].sname
      }
      document.getElementsByClassName('stu-list')[0].innerHTML=txt;
    }
  };
  //3.向后台发送请求
  xhr.send()

标签:xmlhttp,请求,xhr,Ajax,服务器,XMLHttpRequest,onreadystatechange
来源: https://blog.csdn.net/batLk/article/details/110249926

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有