1、基本结构

<script type="text/javascript">
// 创建XMLHttpRequest对象
var request = new XMLHttpRequest();
var id = '1';
request.onreadystatechange = function() {
// 如果请求成功,且获取响应,则返回响应数据
if (request.readyState == 4 && request.status == 200) {
document.getElementById("result").innerHTML = request.responseText;
}
}
// 请求 open("method","url","async(true/false)")
request.open("get", "index.jsp?id=" + id, true);
// 设置请求头信息
request.setRequestHeader("content-type",
"application/x-www-for-urlencoded");
// 发送请求,当请求为post时,请求参数应该写在send()方法中
request.send();
</script>

2、Http请求过程

  • 建立TCP链接
  • 浏览器向服务器发送请求命令
  • 浏览器发送请求头信息
  • 服务器响应(应答)
  • 服务器发送应答头信息
  • 服务器向浏览器发送数据
  • TCP连接关闭

3、Http请求

  • 请求方法:GET/POST

    • GET:长度在200个字符;
    • POST:一般用于修改服务器上的资源,对所发送信息的数量无限制;
  • 请求URL

  • 请求头:包含一些客户端环境信息、身份验证信息等

  • 请求体:包含客户提交的查询字符串信息、表单信息

4、Http响应

  • 一个数字和文字组成的状态码,用来显示请求是否成功
  • 响应头:包含许多用户信息,入服务器类型,日期时间,内容类型和长度等
  • 响应体
  • 状态码:
    • 1XX:信息类,服务器正在进行进一步处理
    • 2XX:成功
    • 3XX:重定向
    • 4XX:客户端错误,请求有错误
    • 5XX:服务器错误

5、XMLHttpRequest发送请求

  • request.open("get", "index.jsp?id=" + id, true)

    • 请求 open("method","url","async(true/false)")
  • request.setRequestHeader("content-type",

    "application/x-www-for-urlencoded");

    • 设置请求头信息,写在open和send方法之间
  • request.send();

    • 发送请求,当请求为post时,请求参数应该写在send()方法中

6、XMLHttpRequest获取响应

  • responseText:获取字符串形式的响应数据

  • responseXML:获取xml形式的响应数据

  • status和statusText:以数字和文本形式返回Http状态码

  • getAllResponseHeader():获取所有的响应报头

  • getResponseHeader():查询响应中的某个字段的值

  • readyState属性:

    • 值为 0 :请求初始化,open还没有调用
    • 值为 1:服务器连接已建立,open已经调用
    • 值为 2:请求已被接收,也就是连接到头信息了
    • 值为 3:请求处理中,也就是接收到响应头了
    • 值为 4:请求已完成,且响应已就绪,也就是响应完成了
  • 常用方法:

request.onreadystatechanage=function() {
if(request.readystate === 4 && request.status === 200) {
// 响应后的操作
}
}

7、JSon解析

基本概念
  • JSon是存储和交换文本信息的语法,类似XML,它采用键值对的方式来组织,易于阅读和编写,也易于机器解析和生成
  • JSon是独立于语言的
JSon和xml的比较
  • 长度比xml短小
  • 读写速度比xml更快
  • Json可以使用JavaScript内建的方法直接进行解析、转换成Javascript对象
JSon解析
  • JSon.parse(Json_name)
  • eval('('+ json_name +')')
数据结构
  • 1、 Object:使用花括号内含的键值对结构,key必须是String类型,value为任意基本类型或数据结构
    • {String:value}
  • 2、Array:基本类型String、number,使用中括号括起来并用逗号分隔

Ajax原生请求及Json基础的更多相关文章

  1. SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析

    SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析 一:问题demo展示 ...

  2. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  3. springmvc通过ajax异步请求返回json格式数据

    jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...

  4. ajax post 请求发送 json 字符串

    $.ajax({ // 请求方式 type:"post", // contentType contentType:"application/json", // ...

  5. Ajax原生请求和java对象转成json

    \黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day23-资料源码\ajax_code\day23_3 本代码中有模 ...

  6. 原生ajax异步请求基础知识

    一.同步交互与异步交互的概念: * 同步交互:客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户不能做任何其他事情(只能等待响应完才能继续其他请求). * 异步交互:客户端向服务器端发送请 ...

  7. 【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】

    一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使 ...

  8. 原生js实现ajax与jquery的ajax库,及json

    这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...

  9. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

随机推荐

  1. mysql 使用过程中出现问题

    1. mysql_front连接报错,sql执行错误#3167的解决方案 提示:The 'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is disabl ...

  2. 分享知识-快乐自己:Liunx 安装 Zookeeper

    Zookeeper可以安装在windows中也可以安装在linux中! 但是我们的服务器基本都是在linux之上 安装我们的 zookeeper 注册中心! 安装成功之后  修改 nat 模式对应的端 ...

  3. C++(二)— STL容器的基本用法

    1.vector基本操作 关于vector简单的讲就是一个动态增长的数组,里面有一个指针指向一片连续的内存空间,当空间装不下的时候会自动申请一片更大的空间(空间配置器)将原来的数据拷贝到新的空间,然后 ...

  4. Git教程及问题解析

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Git教程 最近用git比较多,做出教程一份,供大家参考. 1.        安装Git,并配置环 ...

  5. .dhpcd导致cpu飙升问题

    因公司有业务服务器在阿里云上面,阿里云后台报警说,“有恶意程序在挖矿”,引起了高度重视,于是我登陆服务器进行排查. 登陆云服务器:系统centos7.5 第一步使用top查看资源情况. top 可以清 ...

  6. appium-环境搭建(三)

    appium步骤:基本环境1.由于操作手机端操作,需要模拟器或者真机 itools模拟器,真机2.appium操作app,需要知道操作的app是什么?需要知道这个app包名 1.问开发 2.利用adt ...

  7. 关于c++中char*、char ch[]和string区别

    一.字符串指针: char* ch="hello"; 这里的"hello"是字符串常量,是不可以改变的,即通过ch[0]="s"会编译出错. ...

  8. 【leetcode刷题笔记】Remove Duplicates from Sorted Array II

    Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...

  9. Agc019_F Yes or No

    传送门 题目大意 有若干道判断题,其中有$n$道答案是$Yes$,另外$m$道答案是$No$,问题除了答案差异本质相同.这些题一道都不会做,但是事先知道$n$和$m$的数量.每次机器会事先等概率地排列 ...

  10. bzoj5329 战略游戏

    有一个圆方树,每次给出一个点集,询问虚树上圆点数量-询问点数量 sol:题意读懂就很简单了...可以建虚树dp 也可以考虑每一条链对答案的贡献,最后要注意单独计算虚树根对答案的贡献 #pragma G ...