Ajax定义


  • Ajax:(Asynchronous JavaScript And XML)指异步 JavaScript 及 XML,实质上是就是用JavaScript的XMLHttpRequset对象实现的
  • 它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术,是基于JavaScript、XML、HTML、CSS、异步新用法

Ajax:只刷新局部页面的技术

l JavaScript:更新局部的网页

l XML:一般用于请求数据和响应数据的封装

l XMLHttpRequest对象:发送请求到服务器并获得返回结果(js中的)

l CSS:美化页面样式

l 异步:发送请求后不等返回结果,由回调函数处理结果

XMLHttpRequest对象&创建对象

关于XMLHttpRequset对象

  • 定义:XMLHttpRequest对象是整个Ajax技术的核心,它提供了异步发送请求的能力
  • 作用:用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
  • 支持:所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

创建XMLHttpRequest对象

由于IE5、IE6的兼容性问题,所以要视情况创建对象

function getAjax(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+,Firefox,Chrome,Opera,Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6,IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }

XMLHttpRequset 对象的相关API

方法

方法名 描述
open(method,URL,async) 建立与服务器的连接
method:提交方式(post/get)
URL:提交的路径
async:是否开启异步(true/false)
send(context) 发送请求
context:参数(一般用于放post参数)
setRequsetHeader(header,value) 设置消息头信息

属性(一般用于处理结果时进行判断)

  1. readyState:XMLHttpRequest的状态信息
状态码 说明
0 XMLHttpRequest对象没有完成初始化
即:刚刚创建。
1 XMLHttpRequest对象开始发送请求
调用了open方法,但还没有调用send方法。请求还没有发出
2 XMLHttpRequest对象的请求发送完成
send方法已经调用,数据已经提交到服务器,但没有任何响应
3 XMLHttpRequest对象开始读取响应,还没有结束
收到了所有的响应消息头,但正文还没有完全收到
4 XMLHttpRequest对象读取响应结束
一切都收到了

2. status:HTTP的状态码

状态码 说明
200 服务器响应正常
400 无法找到请求资源
403 没有访问权限
404 访问的资源不存在
500 服务器内部错误

3. responseText:获得响应的文本内容
4. responseXML:获得响应的XML文档对象 documednt

请求

  1. get请求
//1.创建XMLHttpRequset对象
function getAjax(){
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+,Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6,IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
}

function doAjax(){
    //获取XMLHttpRequest对象
    var xmlHttp = getAjax();
    //2.监听readyState状态
    xmlHttp.onreadystatechange = function(){
        //5.成功后处理结果
        if(xmlHttp.readyState==4&&xmlHttp.status==200){
            vat text = xmlHttp.responseText;
        }
        //3.建立与服务器的连接
        xmlHttp.open("GET","/user?id=1001",true);
        //4. 发送数据给浏览器
        xmlHttp.send();
    }
}
  1. post请求
//1.创建XMLHttpRequset对象
function getAjax(){
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+,IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
}

function doAjax(){
    //获取XMLHttpRequest对象
    var xmlHttp = getAjax();
    //2.监听readyState状态
    xmlHttp.onreadystatechange = function(){
        //5.成功后处理结果
        if(xmlHttp.readyState==4&&xmlHttp.status==200){
            vat text = xmlHttp.responseText;
        }
        //3.建立与服务器的连接
        xmlHttp.open("Post","/user",true);
        //4. 发送数据给浏览器
        xmlHttp.send();
    }
}

区别:get直接通过URL传值,Post通过send()传值

案例

  1. 用户名验证

    • 一般是在用户进行注册时
    • 在用户名输入框(input)上注册一个触发事件(如onChange()、onKeyup()等)
    • 每当事件触发时就调用ajax将用户输入的值传给后台校验,
    • 然后将结果(一般是提示信息)反馈给ajax让前台展示。
  2. 搜索提示

    原理差不多,将事件注册在搜索框上,获取用户键入的值传给后台查询数据库,将结果反馈给ajax展示

  3. 后台json数据交互

Ajax初识的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  3. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  4. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  5. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  7. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  8. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

  9. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. jQuery Ajax 实现分页 kkpager插件实例代码

    本文通过实例代码给大家讲解了jQuery Ajax 实现分页 kkpager插件功能,需要的的朋友参考下吧

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到<input>中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部