简单聊一聊原生Ajax与JQuery Ajax

yizhihongxing

一、原生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中的原型OOP

    详解JavaScript中的原型OOP 什么是原型OOP 原型OOP是指JavaScript中通过原型链实现面向对象编程的方式。它利用每个JavaScript对象都有一个指向原型的指针,通过原型链可以实现继承和复用,从而实现面向对象编程的特性。 原型链 原型链是通过每个对象都有一个指向原型的指针,从而形成的链式结构。例如: let animal = { ea…

    JavaScript 2023年6月10日
    00
  • js实现小球在页面规定的区域运动

    实现小球在页面规定的区域运动,需要用到JavaScript语言实现动态效果。 具体的步骤和示例说明如下: 首先,需要在html代码中添加一个用于显示小球的div标签,类似如下代码: <div id="ball" style="position:absolute; width:20px; height:20px; borde…

    JavaScript 2023年6月11日
    00
  • JS删除数组中某个元素的四种方式总结

    JS删除数组中某个元素的四种方式总结 JavaScript中有多种方式可以删除数组中某个元素,本文将总结其中常用的四种方式并且进行详细介绍。 方法一:splice() splice()方法可以在数组中添加、删除或替换元素。可以通过指定两个参数来删除一个或多个元素。第一个参数指定从哪个索引开始进行删除,第二个参数指定要删除的元素个数。以下是该方法的语法: ar…

    JavaScript 2023年6月10日
    00
  • 使用JS实现气泡跟随鼠标移动的动画效果

    使用JS实现气泡跟随鼠标移动的动画效果,可以分为以下几个步骤: 步骤1:HTML结构 首先,需要在HTML中创建一个容器元素,用于包含气泡,代码如下: <div id="container"></div> 步骤2:CSS样式 通过CSS对容器元素进行样式设置,如设置宽高、背景颜色和边框等,代码如下: #contai…

    JavaScript 2023年6月10日
    00
  • javascript if条件判断方法小结

    下面为大家详细讲解“JavaScript if条件判断方法小结”的完整攻略。 1. if条件语句 if语句是JavaScript中最常用的条件判断语句。它的基本语法结构如下: if (condition) { // 如果condition为真,则执行这里的代码 } else { // 如果condition为假,则执行这里的代码 } 其中,condition…

    JavaScript 2023年6月10日
    00
  • 基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题

    针对“基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题”的完整攻略,可以从以下几个方面阐述。 问题分析 在使用 Ajax 进行页面无刷新交互时,如果想要实现浏览器的后退前进功能以及页面刷新功能,需要解决的问题有两个: Ajax 请求页面时,URL 并没有发生改变,因此浏览器的后退前进功能无法直接使用; 如果用户进行了 F5 …

    JavaScript 2023年6月11日
    00
  • JavaScript组合拼接字符串的效率对比测试

    这里是“JavaScript组合拼接字符串的效率对比测试”的完整攻略。 前言 在实际前端项目中,字符串拼接是很常见的操作。比如说,在渲染页面的时候,需要将一些字符串拼接后放到标签属性里;或者需要将字符串作为参数传递给后端接口。有经验的前端工程师都知道,正确使用字符串拼接可以使得程序运行更快。因此,在本文中,我们将会比较常用的几种字符串拼接方法,以了解它们的效…

    JavaScript 2023年5月28日
    00
  • JavaScript实现页面电子时钟

    下面是JavaScript实现页面电子时钟的完整攻略: 1. 准备工作 在实现页面电子时钟之前,需要先编写HTML和CSS代码来布局和样式化页面,然后才能使用JavaScript来实现时钟的功能。 1.1. HTML代码 HTML代码负责页面的布局,通常会包含容器元素来存放时钟的各个部分。 <!– 电子时钟容器 –> <div clas…

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