javascript中AJAX用法实例分析

yizhihongxing

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使用对象直接量创建对象的代码

    通过使用对象直接量,我们可以方便快捷地创建JavaScript对象。在这篇攻略中,我将详细介绍如何使用对象直接量来创建对象,并提供两个示例以帮助您更好地理解。 什么是对象直接量? JavaScript对象可以通过使用对象直接量的方法来创建。对象直接量使用一对花括号 {} 来包含对象的属性和方法。下面是一个使用对象直接量创建对象的示例代码: var perso…

    JavaScript 2023年5月27日
    00
  • JS实现轮播图小案例

    JS实现轮播图小案例的攻略如下: 1. 设计HTML结构 在页面上设计轮播图的HTML结构,通常采用ul标签加li标签的方式,li标签内嵌套img标签。同时也可以添加左右切换箭头、小圆点等控件。 示例代码: <div class="slider"> <ul class="slider-list"&gt…

    JavaScript 2023年6月11日
    00
  • 如何正确理解javascript的模块化

    如何正确理解JavaScript的模块化? JavaScript中的模块化是为了更好的组织和管理JavaScript代码而设计的。模块化代码的设计可大大简化和优化我们的开发过程,使代码更容易维护和重用。在JavaScript中,我们可以使用import和export命令来遵循ES6模块化规范进行模块导入和导出。 以下是如何正确理解JavaScript模块化的…

    JavaScript 2023年6月10日
    00
  • javascript 产生随机数的几种方法总结

    下面我将详细讲解“javascript 产生随机数的几种方法总结”的完整攻略。 1. Math.random()方法 介绍 Math.random() 方法用于返回一个0~1之间的随机浮点数。 语法 Math.random() 示例 // 返回0~1之间的随机数 const randomNum = Math.random(); console.log(ran…

    JavaScript 2023年5月28日
    00
  • js对数字的格式化使用说明

    下面是关于js对数字的格式化使用说明的完整攻略。 什么是数字格式化 数字格式化是在将数字数据呈现给用户时,在数字上应用特定格式,以便于理解和解释。 js对数字的格式化有哪些方法 在JavaScript中,我们可以使用toExponential()、toFixed()、toPrecision()和toLocaleString()四种不同的方法来格式化数字。 t…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计(第3版)学习笔记5 js语句

    JavaScript高级程序设计(第3版)是一本经典的JavaScript教材,本书是关于js语句的学习笔记,以下为完整攻略: 目录 条件语句 循环语句 跳转语句 try-catch语句 with语句 条件语句 条件语句是根据条件执行不同代码块的语句。 if语句 if语句的基本格式是: if (条件) { // 如果条件为真,则执行这里的代码 } 示例: i…

    JavaScript 2023年5月27日
    00
  • javascript面向对象包装类Class封装类库剖析

    JavaScript面向对象包装类Class封装类库剖析 在JavaScript中,面向对象通常使用函数和原型来实现。然而,使用这种方式在使用时容易出错,尤其是涉及到继承和多态时。为了解决这个问题,JavaScript ES6引入了“类”(Class)这个概念,从而使得JavaScript更加符合面向对象的编程思想。在本文中,我们将会介绍如何封装一个Java…

    JavaScript 2023年5月27日
    00
  • IE8 原生JSON支持

    IE8 原生 JSON 支持是指 Internet Explorer 8(IE8)浏览器中自带了对 JSON 数据格式的支持。在 IE8 之前的版本中,如果要使用 JSON 格式的数据,需要引入第三方库来解析或者手写解析函数。而在 IE8 中,开发者可以直接使用浏览器提供的全局对象 JSON 来解析和序列化 JSON 格式的数据,无需引入其他库。 为了使用 …

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