ajax介绍

Ajax

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

同步和异步

传统的WEB应用中,在客户端发出请求与服务器做出响应之间的一段时间里,客户端是不可以做其他操作的,带来的问题就是用户体验差,而服务器响应的结果通常是返回一个页面或者重定向到其他页面。这就是同步。
异步请求是,用户可以在不刷新页面的前提下更新页面部分数据(局部更新),在客户端向服务器发生请求后,在等待服务器的响应的这段时间中,用户可以继续进行他的操作,使用这种异步请求可以及时的更新页面的数据,用户体验较好。

XMLHttpRequest对象

XMLHttpRequest 对象用于在后台与服务器交换数据。通过这个对象可以实现异步操作。

获取XMLHttpRequest对象

var request = new XMLHttpRequest();

这种方式不兼容IE5和IE6

XMLHttpRequest发送请求

open(method,url,async)//创建请求

method-请求方式(字符串类型),url-请求路径(字符串类型),async-同步/异步(boolean类型,true异步,false同步,默认true)

send(string)//发送请求

string-要发送的数据,字符串类型,get请求可以不填写改参数,因为参数都放在url中,可以传递null值,post请求必须填写

request.setContentHeader("Content-Type","application/x-www-form-urlencoded");

设置http的Content-Type头信息,这是告诉游览器我发送的是一个表单,这个方法应该写在open和send之间,否则会抛出异常

XMLHttpRequest获取响应

request.responseText

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

request.responseXML  

获取XML形式的响应数据

request.status

获取数字状态信息

request.statusText

获取文本形式的状态信息

request.getAllResponseHeader()

获取所有的响应消息头

request.getResponseHeader(xx)

获取指定的消息头的值

request.readState

代表服务器响应的变化
0-请求未初始化,未调用open
1-服务器已经建立,open已经调用了
2-请求已接收,接收到头信息了
3-请求处理中,接收到响应主体了
4-请求已完成,且响应已就绪,也就是响应完成了

Json格式

服务器可以向客户端返回一串特定格式的字符串,客户端收到之后进行解析,可以得到自己想要的数据
格式:

{"属性名":"值","属性名":"值","属性名":"值"}

值的类型可以数字、字符串、数组、对象、null

javaScript提供了解析json格式字符串的方法,转化成json对象,

提供的方法有:eval和JSON.parse()

eval解析json会把json中的代码执行,而且相对麻烦不建议使用这种方式解析

var jsondata = '{"staff":[{"name":"洪七","age":"70"},{"name":"郭靖","age":"35"},{"name":"黄蓉","age":"30"}]}';  
var jsonobj = eval('('+jsondata+')');

JSON.parse()不会执行json中的代码

var jsondata = '{"staff":[{"name":"洪七","age":"70"},{"name":"郭靖","age":"35"},{"name":"黄蓉","age":"30"}]}';  
var jsonobj = JSON.parse(jsondata);

jQuery中的Ajax

$.ajax({
    "url":"/login",
    "data":"username=tom&password=1234",
    "type":"post",
    "dataType":"json",
    "success":function(json){

    },
    "error":function(xhr){

    }
});

函数的参数是一个json对象

  • url:请求路径
  • data:请求数据
  • type:请求方式
  • dataType:服务器返回的数据类型,一般采用json,可以设置为json
  • success:是一个方法,请求成功后的回调函数,传入返回后的数据,
  • error:是一个方法,请求失败后的回调函数,传入XMLHttpRequest对象
QAQ感谢你的支持=w=