异步对象

  a)创建异步对象

  b)设置请求的url等参数

  c)  发送请求

  d)注册时间

  e)在注册的事件中获取返回的内容并修改页面显示的内容

布尔类型不能直接用echo输出

常见的响应状态

Ajax概念

在浏览器中,我们也能够不刷新页面,通过ajax的方式去获取一些新的内容,类似网页有微博,朋友圈,邮箱

  • 单词解释:

Asynchronous Javascript And XML(异步JavaScript和XML),

他并不是凭空出现的新技术,而是对于现有技术的结合:核心是js对象XMLHttpRequest

XMLHttpRequest

ajax使用的依旧是HTTP请求,那么让我们来回忆一下一个完整的HTTP请求需要什么

>

  • 请求的网址,方法get/post

  • 提交请求内容数据,请求主体

  • 接收响应回来的内容

  • 五步使用法:

    1. 建立XMLHTTPRequest对象

    2. 注册回调函数

      • 当服务器回应我们了,我们想要执行什么逻辑
    3. 使用open方法设置和服务器端交互的基本信息

      • 设置提交的网址,数据,post提交的一些额外内容
    4. 设置发送的数据,开始和服务器端交互

      • 发送数据
    5. 更新界面

      • 在注册的回调函数中,获取返回的数据,更新界面

XMLHttpRequest_API讲解

1.创建XMLHttpRequest对象(兼容性写法)

  • 新版本浏览器:
var xml=new XMLHttpRequest();
  • (IE5 和 IE6)
var xml=new ActiveXObject("Microsoft.XMLHTTP");
  • 考虑兼容性创建Ajax对象
 var request ;if(XMLHttpRequest){// 新式浏览器写法request = new XMLHttpRequest();}else{//IE5,IE6写法request = new ActiveXObject("Microsoft.XMLHTTP");}

2.发送请求:

方法 描述
open(method,url,async)

规定请求的类型、URL 以及是否异步处理请求。

  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)
send(string)

将请求发送到服务器。

  • string:仅用于 POST 请求
 

3.POST请求注意点:

如果想要像form表单提交数据那样使用POST请求,需要使用XMLHttpRequest对象的setRequestHeader()方法 来添加 HTTP 头。然后在 send() 方法中添加想要发送的数据:

xmlhttp.open("POST","ajax_test.php",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Bill&lname=Gates");

4.onreadystatechange事件

当服务器给予我们反馈时,我们需要实现一些逻辑

属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
status

200: "OK"

404: 未找到页面

4.服务器响应内容

如果响应的是普通字符串,使用responseText,如果响应的是XML,使用responseXML

属性 描述
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。
  • 示例代码:GET

    get的数据,直接在请求的url中添加即可

<script type="text/javascript">// 创建XMLHttpRequest 对象var xml = new XMLHttpRequest();// 设置跟服务端交互的信息xml.open('get','01.ajax.php?name=fox');xml.send(null);    // get请求这里写null即可// 接收服务器反馈xhr.onreadystatechange = function () {// 这步为判断服务器是否正确响应if (xhr.readyState == 4 && xhr.status == 200) {// 打印响应内容alert(xml.responseText);} };
</script>

  • 示例代码:POST
<script type="text/javascript">// 异步对象var xhr = new XMLHttpRequest();// 设置属性xhr.open('post', '02.post.php' );// 如果想要使用post提交数据,必须添加xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");// 将数据通过send方法传递xhr.send('name=fox&age=18');// 发送并接受返回值xhr.onreadystatechange = function () {// 这步为判断服务器是否正确响应if (xhr.readyState == 4 && xhr.status == 200) {alert(xhr.responseText);} };
</script>

转载于:https://www.cnblogs.com/mingm/p/6884222.html

PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、...相关推荐

  1. iOS开发之HTTP的请求头和响应头 以及常见的响应状态码

    *************请求头************** 请求头:包含了对客户端的环境描述.客户端请求信息等 GET /minion.png HTTP/1.1   //包含了请求方法.请求资源路径 ...

  2. 常见HTTP响应状态码

    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收.理解.接受 3xx:重定向--信息不完整需要 ...

  3. 全面剖析Ajax的XMLHttpRequest对象(学习Ajax必须知道的东西)

    XMLHttpRequest对象是当今所有AJAX和Web 2.0应用程序的技术基础.尽管软件经销商和开源社团现在都在提供各种AJAX框架以进一步简化XMLHttpRequest对象的使用:但是,我们 ...

  4. python爬虫常见报错_Python爬虫常见HTTP响应状态码详解

    在使用Python进行网页数据抓取时,经常会遇到无数据返还或错误等异常,这个时候可以通过status_code命令来查看获得http请求返回的状态码,以便查找原因并制定相应的解决方案.import r ...

  5. http常见的响应状态码

    HTTP响应状态码分类 1XX:100-199 信息响应 2XX:200-299 成功响应 3XX:300-399 重定向 4XX:400-499客户端错误 5XX:500-505 服务器端错误 一. ...

  6. Ajax基础教程【2】使用XMLHttpRequest对象

    1. 创建 XMLHttpRequest 对象的一个实例 var xmlHttp; function createXMLHttpRequest() {//检查是否支持 ActiveXObject 控件 ...

  7. 爬虫(一):爬虫的基础知识 ---通用爬虫和聚焦爬虫,http和https协议,常见的响应状态码

    一.爬虫的定义 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 二.爬虫可以解决的问题 解决冷启动问题 搜索引擎的根基. -通用爬虫 帮助机器学习建立知识图谱 制作各种比价软件 三 ...

  8. php session 异步,Ajax异步请求PHP服务器,如何做到无阻塞响应 原创 学习与分享 PHP自学...

    最近发现了一个ajax异步请求的问题,用$.post.$.get.$.ajax请求PHP服务器时,总是无法异步返回数据. 经多次测试才发现: -- 不同浏览器,请求不同域名-不阻塞:无需实验 -- 不 ...

  9. 实现Ajax异步交互

    实现Ajax的执行步骤 1.创建Ajax的核心对象XMLHttpRequest对象 function createXMLHttpRequest(){//创建Ajax的核心对象XMLHttpReques ...

最新文章

  1. 傅里叶变换性质证明卷积_傅里叶变换(三) 采样与离散序列
  2. 【深度学习】讲一个深度分离卷积结构和空洞卷积的应用
  3. 四旋翼飞行器旋转矩阵公式推导!
  4. 无法更改密码的解决办法--passwd: User not known
  5. 计算机造句英语怎么说,计算的英文翻译是什么及如何造句
  6. 音视频技术开发周刊 68期
  7. python画二次函数图像的顶点_画二次函数图像的步骤
  8. 分号不是个“随便的人”
  9. 最大子序和(Leetcode第53题)
  10. VC++多线程工作笔记0006---线程间同步机制1
  11. 用Azure Application Insights 监控Python应用(1)
  12. 网友刷屏:秃了秃了!黑马Java项目教程上新
  13. FTP服务器、部署YUM仓库与NFS共享服务
  14. Cloud Storage
  15. APP开发的上线流程
  16. Python-文件夹的拷贝操作
  17. windows与mac文件夹共享
  18. 实现Google测试框架及输出彩色的文字
  19. MATLAB consolas字体中文显示乱码问题
  20. 腾讯云SSL证书申请流程!

热门文章

  1. java ppt控件_Java版PPT操作控件Spire.Presentation v3.3.5新版来袭!支持转换GroupShape到图片...
  2. 1.11 双向神经网络
  3. C语言printf函数详解和示例
  4. sob攻略超详细攻略_2020成都超详细旅游,美食攻略
  5. pyqt怎么button怎么链接_SEO内部链接怎么优化
  6. Aruba7010 默认密码_钟祥人注意!手机这个密码必须设,否则危险!
  7. T系统和应用集成-从SOA架构思想到服务架构规划设计
  8. Redis学习总结(19)——Redis 5种集群方式对比
  9. Java基础学习总结(123)——Java异常处理原则
  10. android多媒体图文混排,android图文混排