javascript中AJAX用法实例分析

JavaScript中AJAX用法实例分析

AJAX(Asynchronous JavaScript And XML),即异步JavaScript与XML。JavaScript通过XMLHttpRequest对象来向服务器发异步请求,从服务器获得数据,并更新网页,而不用在页面加载时刷新整个页面。

AJAX的基本用法

创建XMLHttpRequest对象

XMLHttpRequest对象用于在后台与服务器交换数据。其属性和方法的详细介绍可以参考MDN文档 XMLHttpRequest

创建XMLHttpRequest对象的基本代码如下:

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

发送请求

向服务器发送请求需要用到XMLHttpRequest对象的open()和send()方法。最基本的用法如下:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

其中,第一个参数是请求的方式(GET或POST),第二个参数是请求的URL,第三个参数表示请求是否异步,true表示异步,false表示同步。

接收数据

用XMLHttpRequest对象的onreadystatechange事件来异步接收服务器的响应。这个事件在接收数据时会被触发。当readyState=4以及status=200时,表示响应已经成功返回。代码如下:

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}

其中,readyState属性存有XMLHttpRequest的状态信息,从0到4发生变化:
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

status存有XMLHttpRequest的HTTP状态信息。

AJAX实例1:获取文本文件内容并显示

下面是一个AJAX异步获取文本文件内容并在网页显示的完整示例代码:

<!DOCTYPE html>
<html>
<head>
<title>AJAX异步获取文本文件内容示例</title>
<script>
function loadXMLDoc() {
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","ajax_info.txt",true);
  xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>让 AJAX 异步地修改文本文件内容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button>

</body>
</html>

在上面代码中,我们定义了一个loadXMLDoc()函数,用于异步获取文本文件内容,并将获取的内容在<div id="myDiv">元素中显示出来。

AJAX实例2:向服务器提交表单数据

下面是一个AJAX异步提交表单数据到服务器的完整示例代码:

<!DOCTYPE html>
<html>
<head>
<title>AJAX异步提交表单数据示例</title>
<script>
function submitForm() {
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
  var name = document.getElementById("name").value;
  var email = document.getElementById("email").value;
  var queryString = "name=" + name + "&email=" + email;
  xmlhttp.open("POST", "submit.php", true);
  xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlhttp.send(queryString);
}
</script>
</head>
<body>

<form>
  <label for="name">姓名:</label>
  <input type="text" id="name" name="name"><br><br>
  <label for="email">邮箱:</label>
  <input type="email" id="email" name="email"><br><br>
  <input type="button" value="提交" onclick="submitForm()">
</form>

<div id="myDiv"><h2>等待异步提交结果...</h2></div>

</body>
</html>

在上面代码中,我们定义了一个submitForm()函数,用于异步提交表单数据到服务器,并将提交结果在<div id="myDiv">元素中显示出来。其中,name、email是表单中的输入项,我们将它们的值拼接成queryString,用POST方法异步提交到服务器的submit.php页面。在AJAX请求的头部中,我们设置了HTTP请求的Content-type为application/x-www-form-urlencoded,表示将queryString数据编码成URL参数。在PHP页面中,可以通过$_POST["name"]、$_POST["email"]获取提交的数据。

通过上面的两个示例,我们可以基本掌握AJAX的应用方法。当然,AJAX的应用还有很多细节需要注意,例如AJAX请求的跨域问题、AJAX的安全性等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript中AJAX用法实例分析 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 新手快速学习JavaScript免费教程资源汇总

    新手快速学习JavaScript免费教程资源汇总 背景介绍 JavaScript 是一种常用的编程语言,具有广泛的应用领域。如果您是一个 JavaScript 初学者,可以通过参考多种免费的教程资源来快速掌握这门语言。在本文中,我们将分享一些值得推荐的免费 JavaScript 学习资源,帮助您在学习的过程中少走弯路。 步骤 下面是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • 获取焦点时,利用js定时器设定时间执行动作

    获取焦点时,利用js定时器设定时间执行动作的具体步骤如下: 1. 绑定获取焦点事件 首先,需要在html中为需要获取焦点的元素添加获取焦点事件。可以使用onfocus属性或者addEventListener方法添加事件监听器。 例如,我们可以为一个input元素添加获取焦点事件监听器,代码如下: <input type="text"…

    JavaScript 2023年6月11日
    00
  • JavaScript之Object类型介绍

    下面是关于JavaScript之Object类型介绍的详细讲解。 1. 什么是Object类型 Object类型是JavaScript中最基础的一个类型,也是所有其他类型的基础。对象是由一组无序的键值对组成的集合。每个键值对称作对象的一个属性,键名是一个字符串(比如”age”),键值可以是任意数据类型,包括其他对象。 对象可以通过两种方式来创建:使用Obje…

    JavaScript 2023年5月27日
    00
  • javascript 判断两个日期之差的示例代码

    下面是使用 JavaScript 判断两个日期之差的示例代码的完整攻略。 判断两个日期之差的基本原理 JavaScript 内置的 Date 对象可以获取当前时间,也可以接收指定的日期。我们可以将两个日期分别转换成毫秒数,然后计算它们之间的差值,就可以知道它们之间相差多少时间。 实现步骤 接下来是具体的实现步骤: 首先,我们需要获取到要比较的两个日期。这里的…

    JavaScript 2023年5月27日
    00
  • 11款基于Javascript的文件管理器

    我来为您讲解关于“11款基于JavaScript的文件管理器”的完整攻略。 1. 背景介绍 JavaScript是一种流行的编程语言,同时也是前端开发中不可或缺的一部分。文件管理器是一个非常重要的工具,能够帮助用户对文件进行管理,这篇攻略就是为了介绍一些基于JavaScript的文件管理器。 2. 技术细节 下面是11款基于JavaScript的文件管理器,…

    JavaScript 2023年5月27日
    00
  • springboot中thymeleaf模板使用详解

    这里是 SpringBoot 中 Thymeleaf 模板使用详解的完整攻略: 什么是Thymeleaf Thymeleaf 是一种现代化的服务器端 Java 模板引擎,可以与 Spring Boot 集成使用,支持 HTML、XML、JavaScript、CSS 甚至纯文本。模板文件可以使用包含表达式的标记替换,可以非常方便的将模型数据绑定到 HTML U…

    JavaScript 2023年6月10日
    00
  • JavaScript 实现生命游戏

    JavaScript 实现生命游戏攻略 生命游戏是一个经典的细胞自动机,它是由英国数学家约翰·何顿·康威于1970年发明的。该游戏规则虽然简单,但是可玩性极高,主要涉及到生死、繁衍和群体规律等内容。 本文主要介绍了如何使用 JavaScript 实现生命游戏,分别从实现规则和游戏界面两个方面进行阐述。 实现规则 生命游戏的规则和初始状态都是在网格上的,它主要…

    JavaScript 2023年5月28日
    00
  • JS锚点的设置与使用方法

    当我们需要在一个较长的网页中跳转到指定页面位置或细节处的时候,往往会使用到JS锚点。JS锚点可以通过设置页面中元素的id属性,实现在页面内跳转到指定元素的效果。下面通过以下几个方面来详细讲解JS锚点的设置与使用方法。 设置JS锚点 1.设置元素的id属性 在HTML中,我们可以通过在指定的元素上设置id属性的值,来为该元素创建一个唯一的标识符。例如: &lt…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部