简单聊一聊原生Ajax与JQuery Ajax

一、原生Ajax

什么是原生Ajax?

Ajax是Asynchronous JavaScript and XML的缩写,即异步的JavaScript和XML。AJAX 允许网页在不重新加载的情况下更新部分内容。原生Ajax是指使用JavaScript的XMLHttpRequest对象操作Web服务器执行异步数据交换(通常与JSON和XML数据格式一起使用)的技术。

原生Ajax的优点:

  • 原生Ajax无需安装任何插件和框架,开发成本较低;
  • 可以完全控制请求及响应的过程。

实现原生Ajax的关键步骤:

  1. 创建XMLHttpRequest对象:var xhr = new XMLHttpRequest();

  2. 设置请求参数:

xhr.open('GET', url, true);// 指定请求方式、请求地址、是否异步处理
xhr.onreadystatechange = function() {// readyState变化时的回调函数
    if(xhr.readyState === 4) {// 请求已完成
        if(xhr.status === 200) {// 请求成功
            // 处理响应的数据
        }else {// 请求失败
            console.error('Error:' + xhr.status);
        }
    }
}

// 设置请求头(默认情况下,原生AJAX不会自动设置请求头,如果需要设置请求头,在调用open()之后但在调用send()之前设置)
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); 
  1. 发送请求:xhr.send(data);

示例1:原生Ajax获取JSON格式的数据

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>原生AJAX获取JSON格式的数据</title>
<script>
function getJSON() {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', 'data.json', true);
    xhr.onreadystatechange = function(e) {
        if(xhr.readyState === 4) {
            if(xhr.status === 200) {
                const data = JSON.parse(xhr.responseText);
                console.log(data);
            }else {
                console.error(xhr.statusText);
            }
        }        
    }
    xhr.send();
}
</script>
</head>
<body>
<button onclick="getJSON()">获取数据</button>
</body>
</html>

示例2:原生Ajax上传文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>原生AJAX上传文件</title>
</head>
<body>
<h3>上传文件:</h3>
<form enctype="multipart/form-data">
    <input type="file" name="file" id="file">
    <button onclick="uploadFile()">上传</button>
</form>
<div id="result"></div>
<script>
function uploadFile() {
    const xhr = new XMLHttpRequest();
    const formData = new FormData();//构造表单数据对象
    const file = document.getElementById("file").files[0];//获取上传的文件
    formData.append('file', file);
    xhr.open('POST', 'upload.php', true);
    xhr.onreadystatechange = function(e) {
        if(xhr.readyState === 4) {
            if(xhr.status === 200) {
                const data = xhr.responseText;
                document.getElementById('result').innerHTML = data;
            }else {
                console.error(xhr.statusText);
            }
        }        
    }
    xhr.send(formData);//发送表单数据
}
</script>
</body>
</html>

二、JQuery Ajax

什么是JQuery Ajax?

JQuery Ajax是基于JQuery的AJAX模块,可以通过JQuery的方法轻松地发送Ajax请求。

JQuery Ajax的优点:

  • 简单易用,代码量少;
  • 隐藏了浏览器兼容性问题和异步调用的复杂性;
  • 可以使用Promise等功能,简化回调函数的编写。

实现JQuery Ajax的关键步骤:

  1. 选择请求方式:

  2. $.get(url, data, success(data,status,xhr), dataType)

  3. $.post(url, data, success(data,status,xhr), dataType)
  4. $.ajax(settings)

  5. 设置请求参数:

  6. url: 待请求的地址
  7. data: 待发送Key/value参数,可直接发送对象,jQuery会自动将对象序列化为对象字符串格式发送到服务器上
  8. success(data, textStatus, jqXHR): 请求成功后的回调函数
  9. dataType: 返回数据类型,支持xml、json、script、或者html,默认自动判断(经常用json)

示例3:JQuery Ajax获取JSON格式的数据

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JQuery AJAX获取JSON格式的数据</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
$.getJSON('data.json', function(data) {
    console.log(data);
});
</script>
</head>
<body>
</body>
</html>

示例4:JQuery Ajax上传文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JQuery AJAX上传文件</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<h3>上传文件:</h3>
<form enctype="multipart/form-data">
    <input type="file" name="file" id="file">
    <button id="uploadBtn">上传</button>
</form>
<div id="result"></div>
<script>
$(function(){
    $("#uploadBtn").click(function(){
        var formData = new FormData();
        var file = $('#file')[0].files[0];
        formData.append("file", file);
        $.ajax({
            url: 'upload.php',
            type: 'POST',
            data: formData,
            contentType: false,//不要设置成multipart/form-data,因为这样jquery会帮我们生成一个boundary,但是服务器无法解析
            processData: false,// 不需要对数据做任何处理
            success:function(data) {
                $('#result').html(data);
            },
            error:function(statusText) {
                console.log(statusText);
            }
        });
    });
})
</script>
</body>
</html>

以上是"简单聊一聊原生Ajax与JQuery Ajax"的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单聊一聊原生Ajax与JQuery Ajax - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 在JavaScript中使用对数Math.log()方法的教程

    下面是使用对数 Math.log() 方法的教程及示例说明: 使用对数 Math.log() 方法的教程 1. 什么是对数? 对数是数学中重要的概念之一,指数学中某个数(底数)与另一个数(真数)之间的关系式。换句话说,就是求某个底数下的某个真数的幂的指数是多少。 例如,如果要求以2为底数的8的对数,可以表示为2^x=8,那么对数x就是3,即log2(8)=3…

    JavaScript 2023年6月10日
    00
  • js中如何把字符串转化为对象、数组示例代码

    在Javascript中,我们可以使用JSON对象的方法,将字符串转化为对象、数组。JSON.parse()方法可以将字符串转化为对象或数组。 具体的示例代码如下: 字符串转化为对象 const jsonString = ‘{"name":"Tom", "age":18, "job&quo…

    JavaScript 2023年5月28日
    00
  • JavaScript 中创建私有成员

    创建私有成员在 JavaScript 中是非常常见和重要的需求。可以利用 JavaScript 中的作用域和闭包机制来实现。 在JavaScript中可以通过函数的声明来创建一个私有作用域,在函数中声明的变量和函数都是内部私有的,从而实现私有成员。 具体实现过程如下: 创建一个外部函数,内部定义需要私有的成员。 function myObject() { /…

    JavaScript 2023年6月10日
    00
  • jquery获取url参数及url加参数的方法

    jQuery获取URL参数的方法 在jQuery中,可以使用以下代码来获取URL中的参数: function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for …

    JavaScript 2023年5月19日
    00
  • jQuery之简单的表单验证实例

    关于“jQuery之简单的表单验证实例”的攻略,我将会从以下几个方面进行详细的讲解: 简介:讲解表单验证的概念及其意义; 前提条件:讲解实现简单的表单验证所需要的前提条件; 实现步骤:讲解如何使用 jQuery 实现简单的表单验证的具体步骤; 示例说明:提供两个具体的示例说明,以便更好地理解和掌握表单验证的实现方法。 简介 表单验证是指在用户提交表单数据前对…

    JavaScript 2023年6月10日
    00
  • ExtJs的Date格式字符代码

    以下是“ExtJs的Date格式字符代码”的完整攻略。 一、什么是Date格式字符代码? 在ExtJs中,Date类是与日期和时间相关的一个重要类。在将日期或时间数据格式化为字符串时,需要使用Date格式字符代码。Date格式字符代码是指日期/时间格式字符串中的特殊字符代码,用于表示日期或时间的各个部分。常见的Date格式字符代码包括年份、月份、日期、星期、…

    JavaScript 2023年6月10日
    00
  • Javascript Array slice 方法

    以下是关于JavaScript Array slice方法的完整攻略。 JavaScript Array slice方法 JavaScript Array slice方法用于从数组中提取指定的元素,并将其作为一个新数组返回。该方法不改变原始数组,而是返回一个新的数组。 下面是一个使用slice方法的示例: var arr = [1, 2,3, 4, 5]; …

    JavaScript 2023年5月11日
    00
  • JS通过分析userAgent属性来判断浏览器的类型及版本

    判断浏览器类型及版本是前端开发中比较常见的需求,可以在不同的业务场景中被用到,比如针对某一浏览器的兼容性处理。在JavaScript中,可以通过分析userAgent属性来实现浏览器类型及版本的判断,下面是一些具体的操作步骤: 一、获取userAgent属性:可以使用navigator.userAgent来获取当前浏览器的userAgent属性,该属性包含了…

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