ajax请求

ajax概述

  1. 组成:asynchronous + javascript + xml
  2. 特点:
    1. 可发送异步请求(这也是与传统请求方式的区别)
    2. 用javascript语言编写代码
    3. 前后端数据交换格式为xml(不局限于xml:例如现在更为常用的json,还有其它格式,例如:普通字符串)
  3. ajax请求的应用场景:需要发送异步请求或者要局部刷新页面

ajax请求核心对象

  1. 核心对象:XMLHttpRequest

  2. 发送ajax请求流程的代码

    1. 发送ajax post请求

      var xhr = new XMLHttpRequest()
      xhr.onreadystatechange = function(){
      if(this.readyState == 4){
      if(this.status == 200){
      //执行代码
      }else{
      //执行代码
      }
      }
      }
      xhr.open("POST", "/ajax/ajaxRequest4", true)
      xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
      xhr.send("username="+username.value+"")
    2. 发送ajax get请求

      var xhr = new XMLHttpRequest()
      xhr.onreadystatechange = function(){
      if(this.readyState == 4){
      if(this.status == 200){
      //执行代码
      }else{
      //执行代码
      }
      }
      }
      xhr.open("GET", "/ajax/ajaxRequest4?" + "username="+username+"", true)
      xhr.send()
  3. 获取后端响应的数据

    1. 后端响应json格式的数据

      var jsonObj = JSON.parse(xhr.responseText)
    2. 后端响应xml格式的数据

      response.setContentType("html/xml;charset=utf-8")	//后端要设置响应数据的类型
      var xmlObj = xhr.responseXML	//前端按照xml格式进行数据解析

ajax发送get请求时的缓存问题

  1. ajax get请求有缓存的原因?
  2. 哪些浏览器会发生ajax get请求的缓存问题?
  3. 如何解决ajax get请求的缓存问题?
    1. 提交请求时带上一个时间戳

常用前后端数据交换格式

基于JSON的数据交换

  1. json数据格式的格式规范

    1. {"xxx" : xxx}
  2. 如何解析json格式的数据
  3. 利用fastjson快速生成json格式的字符串

基于XML的数据交换

  1. xml数据格式的格式规范
  2. 如何解析xml格式的数据

两种数据交换格式的对比

  1. json特点:轻量,易解析
  2. xml特点 :体积大,解析较繁琐,但是格式严谨,更安全

ajax乱码问题

  1. 解决方法

     request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");

ajax异步与同步

  1. 特点:类似多线程并发

  2. 设置:

    xhr.open("GET", "/ajax/ajaxRequest4?" + "username="+username+"", true)	//true为支持异步,false为不支持异步

ajax01_基础知识的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. 【FAQ】分析服务导出的事件数据和概览页面展示的数据不一致该如何解决?

    华为分析服务面向开发者提供两种数据展现方式:(1)事件数据下载,开发者可以将事件数据下载后导入到自有的分析系统中:(2)直接在AGC概览页面查看用户数和事件数. 问题描述 某开发者想将事件数据导入到自 ...

  2. GitHub 毕业年鉴「GitHub 热点速览 v.22.20」

    GitHub 毕业需要什么呢?一个 PR!那么提交一个 PR 需要什么?也许你是使用终端命令来提交 git 操作的,那么你可以了解下 Bash-Oneliner,收录了大量好用的 bash 命令,虽然 ...

  3. 877. Stone Game - LeetCode

    Question 877. Stone Game Solution 题目大意: 说有偶数个数字,alex和lee两个人比赛,每次轮流从第一个数字或最后一个数字中拿走一个(偶数个数字,所以他俩拿的数字个 ...

  4. Docker容器手动安装mysql(国内镜像)

    Docker手动安装mysql 1.创建centos镜像的容器 [root@localhost Tools]# docker run -i -d -h zabbix --name zabbix -p ...

  5. centos 修改PHP默认版本

    命令行输入export PATH=/usr/local/php/bin:$PATH 然后回车.

  6. 1.windows编程入门MessageBox使用 -windows编程

    引言:刚开始入门windows编程的时候,我记得当时我对MFC的给出的一大堆代码感到束手无策.因为历史的缘故,windows编程入门的代码并没有体现出C++语言的简洁性,相反一上来就给了我们一大堆代码 ...

  7. 2.1 动为进程,静为程序 -进程概论 -《zobolの操作系统学习札记》

    2.1 动为进程,静为程序 -进程概论 目录 2.1 动为进程,静为程序 -进程概论 问1:发明进程的原因? 问2:现在计算机中的进程的定义是什么? 问3:为什么进程跟处理器的联系更密切? 问4:进程 ...

  8. 3D可视化解决方案为巷道工程安全护航

    最近山东栖霞笏山金矿事故中被困22名矿工的生命安全,在揪着全国民的心.大家都在祈求他们能从井下活着回来. 正是由于被困矿工的坚韧意志和政府相关部门不眠不休的奋力营救,11名矿工终于在被困十余日后平安升 ...

  9. 关于Vue的几个实用知识点(持续更新中……)

    前言 排名不分先后,按自己习惯来的. 一.provide.inject 高级组件 总述: provide在父组件中定义,inject 在子孙组件中定义. provide:选项应该是一个对象或返回一个对 ...

  10. Vue回炉重造之三次封装axios

    源码目录 在src目录下建立一个request文件夹.里面建立两个文件: http.js api.js 源码内容 http.js import axios from 'axios' // 引入axio ...