【前端】之AJAX基础知识
AJAX 简介
- AJAX(Asynchronous JavaScript and XML),异步的JavaScript和XML
- AJAX不是编程语言,只是一种在无需重新加载整个网页的情况下能够更新部分网页的技术
- AJAX技术使网页请求从
同步请求发展成了异步请求
AJAX HTTP请求
- 一个完整的HTTP请求过程通常有以下几个步骤:
- 建立TCP连接
- WEB浏览器向WEB服务器发送请求信息
- WEB浏览器发送请求头信息
- WEB服务器应答
- WEB服务器发送应答头信息
- WEB服务器向浏览器发送数据
- WEB服务器关闭TCP连接
- 一个HTTP请求一般由四个部分组成:
- HTTP请求的方法或动作,比如是GET还是POST请求
- 正在请求的URL,即请求的地址
- 请求头,包含了一些客户端的环境信息,身份验证信息等
- 请求体,即请求正文,包含客户端提交的查询字符串信息、表单信息等
AJAX XMLHttpRequest
- XMLHttpRequest(XHR)是AJAX的核心,用于发送请求
- 创建XHR对象的代码如下(兼容完整版代码):
var request; // XMLHttpRequest对象
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // 兼容Chrome、Firefox、Opera、IE7+浏览器
} else {
request = new ActiveXObject('Microsoft.XMLHTTP'); // 兼容IE5、IE6
}
- XMLHttpRequest对象的方法:open(method, url, async)
- 开启HTTP请求对象
- method:请求方式,字符串类型,GET或者POST
- url:请求的地址
- async:这个请求是同步的还是异步的,true/false,默认是true
- XMLHttpRequest对象的方法:setRequestHeader(type, code)
- 设置HTTP请求的头信息,必须卸载open()和send()方法之间
- type:要发送的数据类型,一般表单都写
Content-type - code:要发送的数据格式,一般都写
application/x-www-form-urlencoded
- XMLHttpRequest对象的方法:send(body)
- 发送HTTP请求
- body:传送的数据,如果是GET则不需要填写,如果是POST则传入请求参数
- XMLHttpRequest对象的属性:
- responseText:获取字符串形式的相应数据
- responseXML:获取XML形式的相应数据
- status:以数字的形式返回HTTP状态码
- statusText:以文本的形式返回HTTP状态码
- readyState:监听服务器响应,具体如下:
- readyState = 0:请求尚未初始化,open()方法还没有调用
- readyState = 1:服务器连接已经建立,open()方法已经被调用
- readyState = 2:请求已经被接受,即服务器已经接收到头信息了
- readyState = 3:请求处理中,即服务器已经接收到请求体了
- readyState = 4:请求已经完成,且响应已经就绪,即响应已经完成了
- 一个使用XMLHttpRequest创建请求并处理相应的示例代码如下:
var request = new XMLHttpRequest();
request.open("GET", "get.html", true);
request.send();
request.onreadystatechange = function() { // 此方法在每次readyState属性变化时触发
if(request.readyState === 4 && request.status === 200) {
var response = request.responseText;
// 处理response
}
};
AJAX JSON数据格式
- JSON(JavaScript Object Notation),JavaScript对象表示法
- JSON时存储和交换文本信息的语法,类似XML,采用键值对的方式来组织,易于阅读、编写和解析
- JSON较XML的优点:
- JSON的长度和XML的格式比起来更短小
- JSON读写的速度更快
- JSON可以使用JavaScript内建的方法直接进行解析,转换成JS对象非常方便
- JSON语法规则:
- JSON中的数据以键值对的形式存储,键放在双引号中,键值之间用冒号隔开,如:
"name":"Jack" - JSON中的数据类型:数字、字符串、boolean值、数组、对象、null
- JSON中的数组放在中括号中,对象放在大括号中
- JSON中的数据以键值对的形式存储,键放在双引号中,键值之间用冒号隔开,如:
- 一个JSON字符串的示例代码如下:
{ staff: [ { "name" : "Jack", age : 22 }, { "name" : "Rose", age : 18 } ] }
- 将JSON解析成JS对象:
- 方法一:
var jsonobj = eval('(' + jsonstr + ')');,此方法不会验证JSON是否合法,不安全,不推荐 - 方法二:
var jsonobj = JSON.parse(jsonstr);,此方法会验证JSON是否合法,推荐使用
- 方法一:
AJAX jQuery
- jQuery库中封装了AJAX请求的方法,让我们可以不再关心浏览器是否兼容等问题
- 在使用jQuery中的AJAX时,需要先引入jQuery库到项目中
- 一个使用jQuery#AJAX请求服务器数据的示例代码如下:
$.ajax({
type: "GET", // 请求方法,GET或POST
url: "get.html", // 请求的地址
dataType: "JSON", // 返回值格式
data: {
name: "Jack",
age: 22
},
success: function(data) { // 请求成功时回调的方法
alert(data.msg);
},
error: function(jqXHR) { // 请求失败时回调的方法
alert(jqXHR.status);
}
});
【前端】之AJAX基础知识的更多相关文章
- Ajax基础知识《一》
对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...
- Ajax基础知识(二)
接上一篇 Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...
- Ajax基础知识 浅析(含php基础语法知识)
1.php基础语法 后缀名为.php的文件 (1) echo 向页面中输入字符串 <?php 所有php相关代码都要写在<?php ?>这个标签之中 echo &q ...
- 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- 初学者入门web前端:C#基础知识:函数
入行前端对函数的掌握程度有可能直接影响以后工作的效率,使用函数可以高效的编写编码,节省时间,所以我整理了C#中最基础的函数知识点,虽然我在学习中 遇到很多问题,但是只要能够解决这些问题,都是好的. 一 ...
- Json,Gson,Ajax基础知识
//json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...
- web前端篇:html基础知识
目录 1.web前端: 2.HTML概述 2.1HTML介绍 2.2HTML在计算机中如何表现 3.HTML基础语法 4.练习题: 1.web前端: 什么是web? web 就是网页,是一种基于B/S ...
随机推荐
- 泛微OA系统多版本存在命令执行漏洞
0x01漏洞描述 泛微OA办公系统是一款协调办公软件. 泛微协同商务软件系统存在命令执行漏洞,攻击者可利用该漏洞获取服务器权限. 0x02漏洞危害 攻击者可以通过精心构造的请求包在受影响版本的泛微OA ...
- Android 常见内存泄露 & 解决方案
前言 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃 (OOM) 等严重后果. 那什么情况下不能被 ...
- CSPS模拟 98
T1 待改 T2 这道题的爆炸充分说明我最近已经颓到一定境界了 考虑到总步数不可能超过n 直接枚举总步数,那么任意时刻对末态的影响就是确定的 T3 两遍最短路,一遍从-1的限制考虑求出允许的最早时间, ...
- 原生JS实现call,apply,bind函数
1. 前言 使用原生JS实现call和apply函数,充分了解其内部原理.call和apply都是为了解决改变this的指向.作用都相同,只是传参的方式不同.除了第一个参数外,call可以接受一个参数 ...
- 大数据之路day01_1--Java下载、安装等配置
从今天开始,我就正式的走上大数据的道路了,如果说我为啥要去学习大数据,可能我的初衷是以后可以接触到人工智能方面的技术,后来在自学的过程中发现,学习人工智能,需要扎实的算法,以及对大量数据的处理,再者, ...
- web常用自动化库——selenium总结
概述 selenium是一个模拟控制浏览器操作的自动化库,它可以做到元素定位,鼠标事件,浏览器事件,js脚本执行等操作 与request不同的是,request是单独请求一个http,而seleniu ...
- HTML创建图像映射,布局,表单
来源: 实验楼 创建图像映射 在这之前我们动手试验过将图片作为链接来使用,触发链接的方式就是点击图片的任何地方都可以链接到跳转地址,有时我们需要实现,点击图片的不同地方跳转到不同的地方.意思就是,一张 ...
- Java设计模式之模板方法模式(Template)
前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象“来做调整”,针对这种拥有 ...
- 深入理解计算机系统 第三章 程序的机器级表示 part2
这周由于时间和精力有限,只读一小节:3.4.4 压入和弹出栈数据 栈是一种特殊的数据结构,遵循“后进先出”的原则,可以用数组实现,总是从数组的一端插入和删除元素,这一端被称为栈顶. 栈有两个常用指令 ...
- 6.2.2 辅助类GenericOptionsParser,Tool和ToolRunner深入解析
辅助类GenericOptionsParser,Tool和ToolRunner (1)为什么要用ToolRunner 将MapReduce Job配置参数写到java代码里,一旦变更意味着修改java ...