原生Ajax的使用——含开放API接口

看了两天关于Ajax的使用,总感觉云里雾里的。

故在此总结梳理一下,如果疏漏错误还请纠正支出。

Ajax能够在向服务器请求额外的数据时,不必重新加载/卸载整个页面,实现一小块区域性的刷新,也是常说的异步更新。

它的核心是XMLHttpRequest对象(简称XMR对象)。

从对服务器的请求到接受返回来的数据,可以从上图简单先了解一下。

第一步,先新建一个XHR对象

//这里新建一个XHR对象

var xhr;

//如果你想兼容IE5的浏览器,那你必须先判断
if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest(); //比较常用的
} else {
        xhr = new ActiveXObject("Microsoft.XMLHTTP"); //兼容IE的写法
}

第二步,调用XHR对象的方法open()来初始化

open(); 有三个参数

第一个是method,请求的方式: "POST,GET..." 这两个比较常用

第二个是请求的URL,可以是绝对路径或者相对路径,当要遵循同域原则

第三个是true和false,true表示异步请求,false是同步请求。默认是true;

xhr.open("GET","example.php",true);
//这里只是初始化请求条件!并未发送请求
//这里发送了一次请求。//send();可以发送数据,但如果不,建议传入null,以便一些浏览器报错;
xhr.send(null);

第三步,发送完请求然后呢?判断请求失败了还是成功了。

xhr有这样一个属性;

xhr.status;

存储着响应的HTTP状态

如果它的值是200,表示请求成功。

如果它的值为304 表示请求的资源并没有被修改,可以直接使用浏览器中缓存的版本;

xhr.status; 

//因为有的浏览器会错误报告204状态代码if (xhr.status >= 200 && xhr.status <= 300 || xhr.status == 304) {  console.log("请求成功");  alert(xhr.responseText); // 弹出请求到的数据} else {  alert(xhr.status); //请求失败,弹出失败的状态 }

到此为止,以上是可以成功发送同步请求的。

但问题来了,我们是发送异步请求,让JS代码继续执行不必等待响应。

还有一个属性

XHR对象的readyState;五个值

0:未初始化,未调用open();

1:启动,但并未发送请求;

2:发送,已经发送请求;

3:接受,已经接受到部分响应数据;

4:完成所有数据的接受,并可以在客户端使用了。

只要readyState属性的值变成另外一个值,就会触发readystatechange事件。

我们来利用这个事件做操作

xhr.onreadystatechange = function() {  if (xhr.readyState == 4) { //说明可以使用了    if (xhr.status >= 200 && xhr.status <= 300 || xhr.status == 304) {      alert(xhr.responseText);    } else {      alert("请求失败了呢");      }  }}

完整代码

var xhr;
//因为有的浏览器会错误报告204状态代码
if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest(); //比较常用的
} else {
        xhr = new ActiveXObject("Microsoft.XMLHTTP"); //兼容IE的写法
}
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) { //说明可以使用了
    if (xhr.status >= 200 && xhr.status <= 300 || xhr.status == 304) {
      alert(xhr.responseText);
    } else {
      alert("请求失败了呢");  
    }
  }
}
xhr.open("GET","example.php",true);
xhr.send(null);

 

在做Ajax的实验时,找到一个老哥分享的接口,可以拿来练练手;

在此,也感谢这位老哥分享的文章!

免费开放接口API-https://blog.csdn.net/c__chao/article/details/78573737

原文地址:https://www.cnblogs.com/learnRoad/p/10655783.html

时间: 2024-12-31 15:09:53

原生Ajax的使用——含开放API接口的相关文章

开放API接口 笑话、天气、新闻

笑话接口示例: http://api.1-blog.com/biz/bizserver/xiaohua/list.do?maxXhid=1000000&size=1&minXhid=6 开放API接口 笑话.天气.新闻 博客分类: 其它 API新闻笑话天气开放API 闲来无事,弄了几个API接口,分享给同样需(闲的)要(没事儿)的人吧 API接口都是HTTP形式的,数据都是json格式,支持ajax调用(已开放所有域名访问) PS:演示网站http://1-blog.com 使用的人麻烦加

Android测试工具ThreadingTest开放API接口说明

ThreadingTest(简称TT)第一期是一款Android白盒测试工具,使用离线检测的方式,在保护用户源代码的基础上,运用插装.第五代覆盖率等技术,为开发工程师与测试工程师提供一套高效可量化.可视化的交流工具.对比其它测试工具,TT在自动化测试时,会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率,并且以TT自带的双向追溯图进行展示,在整个自动化测试进行过程中,TT还会以示波器界面可视化的监控整个自动化测试中每时每刻获取的测试数据. 基于其它测试工具测试时,TT还开放了API接口

开放API接口及其安全性

开放出来给别人调用的API接口是就是开放API接口. 弱点: 数据窃取 用户的密码等信息被不轨之人窃取,登录账号发布敏感信息,盗刷等. 数据篡改 提交的数据被抓包后进行篡改再提交. 数据泄露 爬虫将业务数据甚至核心数据抓取,直接或者间接造成损失. RSA/DES加密 MD5混淆 TOKEN令牌 有令牌才能通过,没有令牌则不能通过 加密分为对称加密和非对称加密 对称加密有:DES,AES 加密和解密是使用同一套秘钥 非对称加密有:RSA 公钥和私钥 公钥加密,私钥解密 RSA可以用来加密和签名 H

几个开放API接口 笑话、天气、新闻

闲来无事,弄了几个API接口,分享给同样需(闲的)要(没事儿)的人吧API接口都是HTTP形式的,数据都是json格式,支持ajax调用(已开放所有域名访问) 笑话API 说明:调用后返回笑话列表,可以在参数中设置已经获取的最大笑话ID和最小笑话ID,返回结果会返回新的笑话(目前大概1w条左右,持续增加中)使用方式请求地址:http://114.215.158.105:8080/bizserver/xiaohua/list.do示例 http://114.215.158.105:8080/htm

开放api接口签名验证

不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如: 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制) 为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证. 案列分析 我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析: 客户端: 以下简称app 后

【转】开放api接口签名验证

不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如: 1. 请求来源(身份)是否合法? 2. 请求参数被篡改? 3. 请求的唯一性(不可复制) 为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证. 案列分析 我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析: 客户端:

远程开户系统开放API接口

如今随着智能识别技术的成熟和商用,金融领域也开始逐渐试水"远程开户".从OCR身份证识别到人脸识别,到如今市场上即将出现完整的远程开户系统,除了需要成熟的技术做支撑外,还需要对市场有着前瞻性的眼光. 这套远程开户系统包含了OCR身份证识别技术.银行卡识别技术.人脸识别等智能识别技术.即利用身份证识别快速采集验证用户身份,并通过联网核查进行验证身份信息,用来核实用户的真实身份;然后利用银行卡识别一键绑定银行卡,再辅以视频人脸识别进行身份进一步验证,确保开户者与证件持有者为同一人,做到人证

springcloud提供开放api接口签名验证

一.MD5参数签名的方式 我们对api查询产品接口进行优化: 1.给app分配对应的key.secret 2.Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下: a. 按照请求参数名称将所有请求参数按照字母先后顺序排序得到:keyvaluekeyvalue...keyvalue  字符串如:将arong=1,mrong=2,crong=3 排序为:arong=1, crong=3,mrong=2  然后将参数名和参数值进行拼接得到参数字符串:arong1crong3mrong

准备开发开放API接口

准备开发APP开放接口,允许JQUERY直接调用http://blog.csdn.net/wuxiangege/article/details/52238968 SIGN的设计与实现http://blog.csdn.net/fengshizty/article/details/48754609 优秀API设计的十大原则 https://wenku.baidu.com/view/7ec95d53102de2bd970588be.html