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字符串的示例代码如下:
    { 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基础知识的更多相关文章

  1. Ajax基础知识《一》

    对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...

  2. Ajax基础知识(二)

    接上一篇  Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...

  3. Ajax基础知识 浅析(含php基础语法知识)

    1.php基础语法    后缀名为.php的文件 (1) echo   向页面中输入字符串  <?php    所有php相关代码都要写在<?php ?>这个标签之中 echo &q ...

  4. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  5. ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  6. 14.ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  7. 初学者入门web前端:C#基础知识:函数

    入行前端对函数的掌握程度有可能直接影响以后工作的效率,使用函数可以高效的编写编码,节省时间,所以我整理了C#中最基础的函数知识点,虽然我在学习中 遇到很多问题,但是只要能够解决这些问题,都是好的. 一 ...

  8. Json,Gson,Ajax基础知识

    //json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...

  9. web前端篇:html基础知识

    目录 1.web前端: 2.HTML概述 2.1HTML介绍 2.2HTML在计算机中如何表现 3.HTML基础语法 4.练习题: 1.web前端: 什么是web? web 就是网页,是一种基于B/S ...

随机推荐

  1. Java 高并发之魂

    前置知识 了解Java基本语法 了解多线程基本知识 知识介绍 Synchronized简介:作用.地位.不控制并发的后果 两种用法:对象锁和类锁 多线程访问同步方法的7种情况:是否是static.Sy ...

  2. 使用ESP8266 打造一款物联网产品---新版ESP8266-RTOS-SDK(V3.1以上)串口使用指南

    问题背景: 使用乐鑫的ESP8266做一个物联网的项目,要使用串口0通信,串口1作为打印log.本来是一个非常简单的事情.没想到居然里面有个大坑.本着前任踩坑,后任抱娃的原则. 这里就做个记录,给后面 ...

  3. Tomcat性能调优实战

    今日帮朋友做了tomcat性能调优的实际操作,心得记录一下. 服务器:Windows2017 配置:CPU 4 内存 8G Tomcat8.0+版本. 压力测试工具:apache-jmeter-4.0 ...

  4. C++ 11新标准实现POJ No.1002-487-3279

    487-3279(重复的电话号码查询)(标签:优先队列,哈希表) 题目描述 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语.例如,你需要给滑铁卢大学 ...

  5. Python实现王者荣耀小助手(一)

    简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手: 前期准备,环境搭建: Python2.7 sys模 ...

  6. LCD 调试总结

    (1) 液晶显示模式 并行:MCU接口.RGB接口.Vysnc接口 串行:SPI接口.MDDI接口 (2) 屏幕颜色 实质上即为色阶的概念.色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的 ...

  7. 5种常见Bean映射工具的性能比对

    本文由 JavaGuide 翻译自 https://www.baeldung.com/java-performance-mapping-frameworks .转载请注明原文地址以及翻译作者. 1. ...

  8. Scrapy进阶知识点总结(三)——Items与Item Loaders

    一.Items 抓取的主要目标是从非结构化源(通常是网页)中提取结构化数据.Scrapy蜘蛛可以像Python一样返回提取的数据.虽然方便和熟悉,但Python缺乏结构:很容易在字段名称中输入拼写错误 ...

  9. Apache安装问题:APR not found

    资料来源:Apache遇到的问题:APR not found 安装apache时出现arp错误问题 按照以上文章试验之后整理如下: #./configure --prefix……检查编辑环境时出现: ...

  10. 后台开发小白必学服务器框架——UDPServer

    毕业后加入了一家大型的互联网公司的音视频产品部门做后台开发,其实我本身是学习自动化的,研究生的方向嵌入式系统,对互联网可是一知半解,因此能进入这样一个大公司还是很幸运的. 刚开始工作的半年应该是在上份 ...