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日

相关文章

  • 在js代码拼接dom对象到页面上去的模板总结(必看)

    标题: 在JS代码拼接DOM对象到页面上的模板总结 在前端开发中,操作DOM节点是一个非常基础但又非常重要的任务。在JavaScript中,我们可以通过拼接DOM对象来实现动态渲染页面的目的,这种方式通常被称为“JS代码拼接DOM对象到页面上的模板”,本文将为您详细介绍该模板的使用方法和注意事项。 使用方法 对于JS代码拼接DOM对象到页面上,我们通常可以使…

    JavaScript 2023年6月10日
    00
  • js控制的回到页面顶端goTop的代码实现

    下面我给你详细讲解“JS控制的回到页面顶端goTop的代码实现”的完整攻略。 1. 设置页面结构 首先,我们需要在HTML文件中添加一个按钮并设置其CSS样式。示例代码如下: <button id="goTop">回到顶部</button> <style> #goTop { position: fixe…

    JavaScript 2023年6月11日
    00
  • 常用js字符串判断方法整理

    常用JS字符串判断方法整理 本文介绍了JS中常用的字符串判断方法,包括正则表达式方法和字符串方法。希望能帮助大家快速了解字符串判断方法的使用。 1. 正则表达式方法 1.1 test()方法 test()方法用于测试一个字符串是否匹配某个正则表达式,返回布尔值。 示例代码: let str = ‘123abc’; // 匹配数字和字母 let reg = /…

    JavaScript 2023年5月28日
    00
  • 浅谈js多维数组和hash数组定义和使用

    针对“浅谈js多维数组和hash数组定义和使用”的话题,我来进行详细讲解。 多维数组 JavaScript中的多维数组,其实就是由多个一维数组组成的数组。我们可以使用一维数组来构建多维数组,比如: const multiArr = [ // 二维数组 [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; const threeDArr = […

    JavaScript 2023年5月27日
    00
  • 与iframe进行跨域交互的解决方案(推荐)

    与iframe进行跨域交互是前端开发中常见的场景,但是由于同源策略的限制,直接使用JavaScript操作跨域iframe是不被允许的。那么,如何解决这一问题呢? 以下是利用postMessage进行与iframe跨域交互的解决方案(推荐): 步骤一:在iframe的源码中添加监听器 <html> <head> <script&…

    JavaScript 2023年6月11日
    00
  • JS实现响应鼠标点击动画渐变弹出层效果代码

    这里为您详细讲解JS实现响应鼠标点击动画渐变弹出层效果的攻略。 实现思路 实现该效果的基本思路是通过 JavaScript 来控制 CSS 样式的变化,从而达到动画渐变弹出层的效果。 具体实现步骤如下:1. 创建一个静态 HTML 页面,包含需要点击的按钮和弹出层。2. 利用 CSS 设置弹出层的初始样式和动画样式。3. 使用 JavaScript 监听按钮…

    JavaScript 2023年6月10日
    00
  • JS实现程序暂停与继续功能代码解读

    下面详细讲解“JS实现程序暂停与继续功能代码解读”的攻略。 程序暂停与继续功能的实现 在JavaScript中,程序暂停与继续功能可以通过使用setTimeout()、setInterval()和requestAnimationFrame()等函数来实现。 其中,setTimeout()函数用于在指定的时间间隔后执行一次任务,而setInterval()函数…

    JavaScript 2023年5月27日
    00
  • js实现文件上传功能 后台使用MultipartFile

    当我们需要在网站中实现文件上传的功能时,可以使用JavaScript来实现前端的交互效果,同时后台使用Spring框架提供的MultipartFile类来处理文件上传。 具体实现步骤如下: 1.在前端HTML页面中,需要提供一个文件上传的表单,并且绑定一个JavaScript的事件,用来监听用户上传的文件。HTML代码示例: <form action=…

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