ajax初步搭建及示例代码

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

AJAX(Asynchronous JavaScript and XML):基于XML的异步JavaScript,简称AJAX,是多种技术的综合.
   一种客户端技术 ,为互联网用户提供更加友善的交互界面,更加流畅的用户体验.也就是所谓的胖客户端,使网页的效果能够像安装在计算机上的应用软件或系统一样友好华丽.
它由如下四种技术组成:CSS + DOM + XMLHttpRequest+ JavaScript .
       各部分功能如下:
       CSS : 控制页面的显示 。
       DOM : 控制文档结构 。
       XMLHttpRequest: 负责与服务器进行异步通信 。
       JAVAScript : 调用,控制其他三个组成部分。
如果去掉XMLHttpRequest则为DHTML技术.

==========================================================
基本流程如下:
   1) 事件触发通信过程
   2)
     2.1 创建XMLHttpRequest对象  createXHR()
     2.2 准备要发送到服务器的参数 .
     2.3 指定用于处理应答的函数 . xhr.onreadystatechange = fn [ 回调函数 ] ;
     2.4 open() , send() ;
    
   3) 编写回调函数 .
      3.1
        通信过程结束  : xhr.readyState == 4
        服务器执行    : xhr.status == 200  
      3.2 对服务器的应答结果进行处理 :
          复杂的用xhr.responseXML (DOM方式)
   简单的用xhr.responseText(返回的字符串)
          
       
==========================================================
XMLHttpRequest与服务器之间数据交换的方式有get和post两种.
使用POST方式提交:
      url = "/ajax/test.jsp" ;
      XMLHttpRequest.open( "POST" , url );
      XMLHttpRequest.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" );//如果是POST,那么必须指定请求头.
      XMLHttpRequest.send( "name=zhangsan&age=12&email=xxxxx" ) ;
==========================================================
使用GET方式提交
      url = "/ajax/test.jsp" ;
      XMLHttpRequest.open( "GET" , url?a=1&b=2 ) ;
      XMLHttpRequest.send(null);

==========================================================
以下给出简单示例代码,以供参考:
**************************************
test.html
**************************************
<html> 
 <head>
  <script type="text/javascript">  
   var xhr ;
   
   //初始化 XMLHttpRequest 对象
   // return value : 1 : IE , 2 , Mozila , 0 : create XMLHttpRequest's object error ;
   function createXHR(){
    //创建XMLHttpRequest对象xhr .
    if( window.ActiveXObject ){
    /*对window.ActiveXObject的调用会返回一个对象,也可能返回null,
    if语句会把返回的结果看作是true或false,如果返回对象则为true,返回null则为false,
    以此指示浏览器是否支持ActiveX控件,相应的得知浏览器是不是Internet Explorer.
    以下类同.*/
     xhr = new ActiveXObject( "Microsoft.XMLHTTP" ) ;
     return 1 ;
    }else if( window.XMLHttpRequest ){//此句是支持XMLHttpRequest则进行如下操作
     xhr = new XMLHttpRequest();
     return 2 ; 
    }else{//不支持XMLHttpRequest则返回0
     return 0 ;
    }                           
   } 
   
   //将用户填写的用户名发送给服务器端验证
   function checkUserName(){
    var ret = createXHR();//<!--step 2.创建XHR  -->
    if( ret == 0 ){
      alert( "create xhr error" ) ;
    }else{
     //在xhr中注册用于处理应答的函数(callBack)
     
     xhr.onreadystatechange = callBack ;<!--step 3.设置回调函数,用于返回数据的处理  -->
     //此处回调后面没有加括号是因为如果javascript将函数复给变量时在后边加了(),那么就会立刻执行了.此处需特别注意
     /**/
     //使用Get方式向服务器发送请求  .
     var url = makeQueryString( "/ajax/check.jsp" );  
     xhr.open(  "get" , url ) ;
     xhr.send( null );//<!--step 4.发送请求到服务器  -->
     //<!--step 5.请求的处理,此处由chenk.jsp进行处理  -->
      /*  
     //通过Post 形式向服务器发送数据 .
     var url = "/ajax/check.jsp" ;
     xhr.open( "post" , url ) ;            
     xhr.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" ) ;//关于此处请参见后面附带的相关文档
     xhr.send( makeQueryString( null )  ) ;
     */
    }   
   }   
   
   //在指定的URL上添加参数
   function makeQueryString( url ){
    var name = document.getElementById( "nameId" ).value ;
    var queryString ;
    if( url == null ){//为null时是使用POST进行发送
     return "name=" + name ; 
    }else{//使用GET进行发送
     return url + "?name=" + name ; 
    }
   }  
   
   function callBack(){ <!--step 6.回调函数的应答  -->
     //通信过程结束 .
     //readyState :0:未初始化(uninitialized) 1: 初始化阶段(loading)
     //2 :连接建立阶段(loaded) 3 : 通信中阶段(interactive)
     //4 : 通信结束(complete)
     if( xhr.readyState == 4 ){ 
      //status==200,表示服务器运行正常,其他值代表错误
      if( xhr.status == 200 ){ 
       processResult();
      }else{
       alert( "error!" ) ; 
      }
     }
   }
                            
   function processResult(){
    //获得应答内容 ,把应答内容显示在网页上
    var span = document.getElementById( "msgId" ) ;
    span.innerHTML = xhr.responseText ; 
   }
  </script>
 </head>
 <body>
  <table>
   <tbody>
    <tr>
     <td>User Name</td>
     <td><input type="text" id="nameId" onblur="checkUserName();"/><!--step 1.进行函数触发  -->
      <span id="msgId"></span>
     </td>
    </tr>
    <tr>
     <td>Password</td>
     <td><input type="password" /></td>
    </tr>                                     
    
    <tr>
     <td colspan="2">
      <input type="button" value="user register" /> 
     </td>
    </tr>
   </tbody>
  </table>
 </body>
</html>
***********************************************************************
check.jsp
***********************************************************************
<%@page contentType="text/html;charset=utf-8" isELIgnored="false"%>
<%@page pageEncoding="GBK"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!--step 5.请求的处理,此处由chenk.jsp进行处理  -->
<%
   Thread.sleep( 2000 ) ;
%>
<c:if test="${ empty param.name}">
 <font color="red"><b>必须填写用户名</b></font>
</c:if>
<c:if test="${ ! empty param.name}">
 <c:if test="${ param.name == 'ajax'}">
  <font color="red"><b>用户名已存在</b></font>
 </c:if>                                     
 <c:if test="${ param.name != 'ajax'}">
  <font color="green"><b>用户名可以使用</b></font>
 </c:if>
</c:if>                
以上代码只作为简单演示,列出了基本的调用创建等方式等.
==========================================================
以下为附加内容:
********************************************************************
关于application/x-www-form-urlencoded等字符编码的解释说明

 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 下边是说明: application/x-www-form-urlencoded:

窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。 text/plain: 窗体数据以

纯文本形式进行编码,其中不含任何控件或格式字符。
 补充
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。 当action为get时候

,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。

当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如

果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默

认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
********************************************************************
注意:
javascript将函数复给变量一定不能写后边的(),如果写了就执行了.
********************************************************************
使用xhr.responseXML时 dom的一些解析方法: .
            getElementById( "id" ) ;
            getElementsByTagNames( "tr" ) ;
            appendChild( childNode ) ;
            removeChild( childNode ) ;
============================================================

 

 

JavaScript实现Ajax的完整示例 本文还有配套的精品资源,点击获取 简介:Ajax技术通过异步请求背景数据交换,实现网页的局部刷新,核心依赖于JavaScript。本文详细介绍了使用纯JavaScript实现Ajax的关键步骤,包括创建XMLHttpRequest对象、初始化、设置响应处理函数、发送请求及处理响应数据。通过这些步骤,开发者能够通过不依赖额外库或框架的方式,提升网页交互体验。示例代码展示了如何... 阅读详情

相关推荐

Porry社工库搭建系列教程

Porry社工库搭建系列教程

Ajax入门教程(内附源码实例)

1.什么是 ajaxajax : Asynchronous JavaScript and XML 异步 JavaScript 和 XML,用javascript异步形式去操作xml。2.ajax 是用来做什么的?ajax 要做的事情就是,从某个接口取数据,然后把取出来的数据,根据不同的特性进行不同的处理,然后再将处理后的结果进行进一步的操作,比如说反馈给用户或者进行数据分析。

王二狗 886

就社你社工辅助 v1.2 - 社工库查询辅助工具

就社你社工辅助v1.2更新如下2015/6/14: >>优化软件皮肤 优化操作速度 >>新增社工库 >>新增密码生成器 >>新增软件自带浏览器(浏览器已经升级为Chrome内核浏览器,不用担心IE版本低的问题) >>新增资料信息收集. >>小细节优化

souyun搜云、ajax\sgk社工库源码

4款社工库源码带有部分数据

搜云社工库网站程序源码

搜云社工库网站程序源码

jQuery 完整 ajax示例

$(function(){ //请求参数 var list = {}; // $.ajax({ //请求方式 type : "POST", //请求的媒体类型 contentType: "application/json;chars...

:) 21万+

AJAX初步学习

软考暂时告一段落了,又开始了我的B/S学习之路,开始看AJAX的系列课程,刚刚看了4集,感觉有点晕乎哈!学习一本课程需要先宏观了解一下,这篇博客,并没有说太多视频的中的知识,而是先宏观学习一下AJAX!           AJAX(Asynchronous JavaScript and XML)即异步的JavaScript与XML技术,指的是一套综合了多项技术的浏览器端网页开发技术。其

学会改变自己——才能突破 7634

什么是AJAX如何使用原生JavaScript搭建AJAX请求

引言基本概念和作用说明什么是AJAXAJAX的作用XMLHttpRequest对象使用原生JavaScript搭建AJAX请求示例一:GET请求获取JSON数据示例二:POST请求提交表单数据示例三:处理超时和错误示例四:上传文件示例五:跨域请求功能使用思路开发技巧分析AJAX并不是一种新的编程语言,而是一种用于创建快速动态网页的技术。它结合了多种技术,包括HTML、CSS、JavaScriptXMLHttpRequest对象以及服务器端脚本。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1319

Ajax入门示例完整代码

Ajax入门完整示例代码!我添加了十分详尽的注释,同时在IDE中调试运行成功,大家可以直接拿去学习和使用我相信代码是最好的学习工具,呵呵 html xmlns="http://www.w3.org/1999/xhtml">head> title>Ajax入门示例title> head>script type="text/jscript">...    var xmlhttp; 

丰志强的专栏 1343

原生Ajax及jQuery处理Ajax的使用和入门 含有代码示例

jquery是一个优秀的js框架,自然对js原生的ajax进行了封装,封装后的ajax的操 作方法更简洁,功能更强大,与 ajax操作相关的jquery方法有如下几种,但开发中 经常使用的有三种:请求方式语法GET请求$.get(url,[data][callback][type]POST请求[data][callback][type]AJAX请求通过远程 HTTP GET 请求载入信息。这是一个简单的 GET 请求功能,如需复杂的ajax参数设置请使用$.ajax

欢迎来到一个不知名牛马的博客 3050

ajax经典示例代码

-------- 目录说明 -------- database 目录存放数据库SQL文件 java 目录存放java源文件 webapp 目录存放实例页面及JSP源文件 -------------- 数据库安装说明 -------------- 了解MySQL的用户可以直接使用自己熟悉的方式创建名为ajax的数据库,并将ajax.sql文件导入即可。 下面是简要操作方法: 1. 实例数据库在MySQL 5.0.27 版本下测试通过 2. 将database目录中ajax.sql文件复制到C:\ 3. 进入MySQL安装目录中的bin目录 4. 输入 mysql -u root -p ,然后输入密码登录本地MySQL服务器 5. 输入 CREATE DATABASE ajax DEFAULT CHARACTER SET utf8; 创建名为ajax的数据库 6. 输入 use ajax 7. 输入 source c:\ajax.sql 执行数据库初始化语句 ------------------ Java源文件使用说明 ------------------ 实例中大部分文件为HTML及JSP文件,部分Java源文件存放在java目录中。 可将目录中的内容作为Eclipse的一个项目导入Eclipse中使用。 ----------- WEB发布方法 ----------- 所有实例在jdk 1.4.2 + Tomcat 5.0.28 环境下测试通过。 将webapp目录中的内容复制到Tomcat的webapps目录中作为一个web应用发布即可。 启动Tomcat前注意修改 ajax/WEB-INF/classes/ajax_db.properties 文件。 将其中的URL、USER和PASSWORD属性根据实际情况进行修改。 Tomcat正常启动后使用 http://localhost:8080/ajax 进行访问 里面

ajax示例代码

ajax基础示例,后台是Java ,前面是最基础的AJAX示例

ajax+js的示例代码

这是一个AJAX+JS制作的一些效果图.有可编辑的表格,弹出框等..方便自己,方便别人

一个完整的ajax应用例子

一个完整的用js写的ajax例子,模仿注册页面输入用户名,输入框失去焦点后,后台异步判断该用户名是否可用,并在页面显示判断结果

AJAX初步了解

开发工具与关键技术:Visual Studio AJAX 作者:Li Mingrun 撰写时间:2019年5月1日 前一个课程基础学习是初步接触了一下jQuey中AJAX的基础知识,但很遗憾那是没有进行, 复习和总结,前一个课程基础学已经快忘记的干干净净了,现在目前的课程也结束有一段时间了, 在回头复习中复习到了AJAX,感觉AJAX很深奥的样子,想先进行一次初步的、整体的AJAX初步 使...

weixin_44540178的博客 284

Ajax和Axios的初步学习

Ajax是一种能够在后台与服务器交换数据并更新部分网页内容的技术,无需重新加载整个页面。其核心是XMLHttpRequest对象,实现异步通信和局部更新。 Axios是基于Promise的HTTP客户端,适用于浏览器和Node.js环境。相比原生Ajax,Axios提供更简洁的API、自动JSON转换、拦截器等功能。

The_cute_cat的博客 1085

JS原生Ajax和jQuery的Ajax代码示例

JS原生Ajax和jQuery的Ajax 【学习目标】 1,了解JS原生Ajax原理 2,掌握json数据格式 掌握json数据格式方式 掌握json的解析方式 3,掌握jQuery中的Ajax封装 4,使用Ajax实现特效 实现异步验证用户名是否存在 实现站内搜索功能 Ajax基本概念 1.1.1 Ajax概述 什么是同步,什么是异步 同步现象:客户端发送请求到服务器端...

苏凯的博客 5万+

ajax 示例代码,Ajax的简单实用实例代码

我将实现一个简单的Ajax页面无刷新进行用户验证案例:效果如下图:实现主要过程:在UsersAction类中的checkUser方法中接收并验证前台的表单数据,针对不同情况,返回一个状态码code给jsp页面,然后在ajax1.jsp中通过$.post方法接受后台传递过来的状态码做出不同的响应。具体代码如下:1.实体类package com.bean;import java.io.Serializ...

weixin_33443932的博客 587

通俗易懂让你初步认识什么是Ajax

Ajax(Asynchronous JavaScript and XML)是与服务器交换数据并更新部分网页的技术 它仅仅是一个技术的名称,如果你不创建ajax对象也实现了这个异步请求功能,那你也实现了ajax的主要功能,也就是网页实现异步请求

一只未秃顶的不合格程序猿的博客 1117
上一篇: div和span的一点区别
下一篇: private static final long serialVersionUID在实现序列化的类中出现的意义
arthurzil
博客等级 码龄17年 12粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值