AJAX是什么

AJAX(异步JavaScript和XML)是一种用于创建交互式网页应用的技术,允许页面在不重新加载整个页面的情况下与服务器交换数据。本文详细介绍了AJAX的基本使用,包括实例化XMLHttpRequest对象、配置请求、发送请求以及监听状态变化来获取响应结果。通过GET和POST两种方式展示了如何发送请求,并提供了参数传递和错误处理的示例。同时,文章还提及了如何将AJAX进行函数封装以及在jQuery中的使用,以提高代码复用性和简化开发流程。

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)

Ajax是一种创建交互式网页应用的网页开发技术,当需要从服务器获取数据,并刷新页面的操作,如果不采用AJAX,则需要用提交整个表单的方式,当提交表单时,发送请求给服务器,页面需要等待服务器发送完response后,页面才能恢复操作。

Ajax基本使用

  1. 实例化Ajax对象var xhr = new XMLHttpRequest();

  2. 配置ajax请求xhr.open(request-type,url,asynch)

  • request-type:【必选】请求类型 get post put delete

  • url:【必选】请求地址

  • asynch:【可选】请求方式 同步请求 false、异步请求 true 该参数是可选的,默认为 true

  1. 发送ajax请求xhr.send()

  2. 监听Ajax状态(获取响应结果)当ajax请求状态发生变化,会触发该事件xhr.onreadystatechange = function(){ // 当xhr状态 == 4 响应内容解析完成,可使用 if(xhr.readyState == 4){ // http响应状态 if(xhr.status == 200){ // 获取响应结果 xhr.response } }}

  • 请求状态 xhr.readyState(未初始化)还没有调用send()方法 (正在载入)已调用send()方法,正在发送请求 (载入完成)send()方法执行完成,已经接收到全部响应内容 (交互中)正在解析响应内容 (完成)响应内容解析完成,可以在客户端调用了

案例:

  1. ajax发送get请求

    ajax请求需要发送参数?xhr.open("get","URL/xxx?key=val&key=val&..")

  2. ajax发送post请求ajax用post请求提交数据,可使用两种格式:

    1. application/x-www-form-urlencoded 字符串key=val&key=val&....POST xhr.send(urlencoded)必须在send之前,设置请求头 content-type:xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")

    2. multipart/form-data 字符串/文件var fd = new FormData();fd.append(key,val)POST xhr.send(formdata)

Ajax基本使用

  1. 实例化Ajax对象var xhr = new XMLHttpRequest();

  2. 配置ajax请求xhr.open(request-type,url,asynch)

  • request-type:【必选】请求类型 get post put delete

  • url:【必选】请求地址

  • asynch:【可选】请求方式 同步请求 false、异步请求 true 该参数是可选的,默认为 true

  1. 发送ajax请求xhr.send()

  2. 监听Ajax状态(获取响应结果)当ajax请求状态发生变化,会触发该事件xhr.onreadystatechange = function(){ // 当xhr状态 == 4 响应内容解析完成,可使用 if(xhr.readyState == 4){ // http响应状态 if(xhr.status == 200){ // 获取响应结果 xhr.response } }}

  • 请求状态 xhr.readyState(未初始化)还没有调用send()方法 (正在载入)已调用send()方法,正在发送请求 (载入完成)send()方法执行完成,已经接收到全部响应内容 (交互中)正在解析响应内容 (完成)响应内容解析完成,可以在客户端调用了

案例:

  1. ajax发送get请求

    ajax请求需要发送参数?xhr.open("get","URL/xxx?key=val&key=val&..")

  2. ajax发送post请求ajax用post请求提交数据,可使用两种格式:

    1. application/x-www-form-urlencoded 字符串key=val&key=val&....POST xhr.send(urlencoded)必须在send之前,设置请求头 content-type:xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")

    2. multipart/form-data 字符串/文件var fd = new FormData();fd.append(key,val)POST xhr.send(formdata)

封装Ajax

设计Ajax程序:

  1. 封装为函数 ajax

  2. ajax函数的参数请求类型 method GET(默认) POST PUT Delete请求地址 url请求方式 async true 同步请求 false、异步请求 true请求数据 data qs, formdata, {}请求成功 success function(data){}请求失败 fail function(){}响应结果类型 dataType 'text','json'

  3. 思路围绕着 ajax 4步操作1> 参数验证、默认值处理2> 实例化 var xhr = new XMLHttpRequest();3> 配置参数 请求类型不同,对应不同配置 get URL post 请求体 send() put 请求体 send() delete URL 4> 发送 send() 5> 响应

    1. 根据响应结果 调用 对应回调函数

    2. 根据dataType 返回对应类型数据 success(data)xhr.onreadystatechange = function(){

    }

jQuery中ajax

$.ajax({ url: "", type: "get|post|put|delete", async: true | false,

contentType: "application/x-www-form-urlencoded",

data:Object|String, dataType: "xml"|"html"|"script"|"json"|"jsonp"|"text",                      error:function(XMLHttpRequest, textStatus, errorThrown){},

success:function(data, textStatus, jqXHR){}})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值