jQuery 中的 Ajax 详解

【AJAX 教程】Jquery 实现 AJAX 请求的三种方式 Jquery 实现 AJAX 请求的三种方式 目录 Jquery 实现 AJAX 请求的三种方式 简介 项目准备 $.get()方法 $.post()方法 $.ajax()方法 项目演示 相关文章【AJAX 教程】JS 原生 AJAX 请求 简介 JQuery 脚本库里所提供的 AJAX 提交的方法有很多,但主要的方法有 $.get(), $.post(), $.ajax()。其中 $.ajax() 是前两种方法的底层实现,可以提供比前两者更多的属性与参数设置,如果需要高级的... 阅读详情
AI摘要

jQuery是跨主流浏览器的JavaScript库,其Ajax封装了XMLHttpRequest等,可实现网页局部更新。介绍了jQuery发送GET、POST请求,$.ajax()方法及settings选项,还提及早期和自1.5版本起的变化,不过现代开发建议优先用原生Promise接口和async/await语法。

一、概念
众所周知,jQuery 是一个跨主流浏览器的 JavaScript 库,它封装了 JavaScript 的常用功能代码,简化了 HTML DOM 操作、事件处理、动画设计和 Ajax 交互等任务。jQuery 中的 Ajax 是对 XMLHttpRequest 或 ActiveXObject(IE9以下版本中)的封装,它提供了一种更加方便和强大的方式来与服务器进行数据交换,从而实现在不重新加载整个页面的情况下,对网页进行局部更新。

二、jQuery 发送 GET 请求

//$.ajax() 等同于 jQuery.ajax(),是 jQuery 提供的一个全局函数,用于发送 Ajax 请求。
//该函数接受一个配置对象作为参数,这个对象可以包含各种属性和方法,用于定义 Ajax 请求的不同方面。
$.ajax({
    //属性 type 用于指定请求类型(GET/POST),默认为 GET,其它 HTTP 请求方法仅部分浏览器支持。
    type: 'GET',
    //属性 url 用于指定请求地址。
    url: 'http://127.0.0.1:8080/getData',
    //属性 data 用于指定发送到服务器的数据,GET请求时 data 属性值将自动转换为查询字符串格式并附加在 URL 后。
    //如果 value 为数组,jQuery 将自动为不同值对应同一个名称,如 {foo:["bar1", "bar2"]} 转换为 "&foo=bar1&foo=bar2"。
    data: {param1:value1, param2:value2},
    //方法 success(data, textStatus, jqXHR) 用于指定请求成功后的回调,其中参数 data 表示服务器的响应体信息;
    //textStatus 表示请求的状态,对于成功的请求,值通常是"success";
    //jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求。
    success: function(data,textStatus,jqXHR){
        //XMLHttpRequest 对象的属性 status,用于表示服务器响应的 HTTP 状态码,如200表示成功,404表示未找到等。
        console.log(jqXHR.status);
        //XMLHttpRequest 对象的属性 statusText,用于表示服务器响应的状态描述,如"OK"、"Not Found"等。
        console.log(jqXHR.statusText);
        //XMLHttpRequest 对象的方法getAllResponseHeaders(),以一个字符串形式返回所有的响应头,且每个响应头独占一行。
		console.log(jqXHR.getAllResponseHeaders());
        //参数 data 表示服务器的响应体信息。
        console.log(data);
        //XMLHttpRequest 对象的属性 responseType,用于表示服务器响应体的数据类型,"" (默认值)表示字符串、text 表示字符串、
        //arraybuffer 表示 ArrayBuffer 对象、blob 表示 Blob 对象、document 表示 Document 对象(XML/HTML)、json 表示 JSON 对象。
        console.log(jqXHR.responseType);
    },
    //属性 timeout 用于指定当前请求的最大请求时间,单位为毫秒,如果请求在该时间内未结束则会自动终止,同时执行 error 指定的回调。
    timeout: 2000,
    //方法 error(jqXHR, textStatus) 用于指定请求失败时的回调,
    //其中参数 jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求;
    //textStatus 表示请求的状态,对于失败的请求,值通常是"timeout"(请求超时)、"error"(请求未能成功完成)、"abort"(请求被中止)、
    //"parsererror"(解析返回的数据时出错)等。
    error: function(jqXHR,textStatus){
        console.log("请求失败,请稍后重试!");
    }
})

三、jQuery 发送 POST 请求

$.ajax({
    type: 'POST',
    url: 'http://127.0.0.1:8080/saveData',
    //属性 contentType 用于告诉服务器请求体的数据类型是什么,默认值为 application/x-www-form-urlencoded,
    //application/json 表示请求体是 JSON 格式的数据,application/x-www-form-urlencoded 表示请求体是表单数据。
    //contentType: 'application/json; charset=utf-8',
    //属性 processData 用于指定 data 属性值是否需要自动转换,默认为 true。
    //processData: false,
    //属性 data 用于指定发送到服务器的数据,类型可以是 Key/Value 对、JSON 字符串、FromData 对象等,
    //此时此处 data 属性值将自动转换为表单数据格式并放在请求体中。
    data: {param1:value1, param2:value2},
    //JavaScript 内置对象 JSON 的方法stringify(),用于将 JavaScript 对象转换成 JSON 格式的字符串。
    //data: JSON.stringify({ param1:value1,param2:value2 }),
    success: function(data,textStatus,jqXHR){
        //假设响应体为 JSON 格式的字符串,此时我们可以通过 JavaScript 内置对象JSON的方法parse()将其转换成 JavaScript 对象。
        console.log(JSON.parse(data));
    },
    timeout: 2000,
    error: function(jqXHR,textStatus){
        console.log("请求失败,请稍后重试!");
    }
})

四、$.ajax() 方法
1、含义
$.ajax(url,[settings]) 等同于 jQuery.ajax(url,[settings]),是 jQuery 提供的一个全局函数,用于发送 Ajax 请求。该函数接受一个配置对象作为参数,这个对象可以包含各种属性和方法,用于定义 Ajax 请求的不同方面。

2、settings 选项
① type 属性
含义:用于指定请求类型(GET/POST),默认为 GET。

说明:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

② async 属性
含义:用于指定请求方式,true 表示异步请求(默认值),false 表示同步请求。

说明:同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

③ headers 属性
含义:用于设置请求头,值为一个对象"{键:值}",其中键是请求头的名称、值是请求头的值。

说明:它允许我们向服务器发送额外的 HTTP 请求头,比如认证令牌、客户端类型、内容类型等,从而进行相应的处理。

④ contentType 属性
含义:用于告诉服务器请求体的数据类型是什么,默认值为 application/x-www-form-urlencoded。

说明:application/json 表示请求体是 JSON 格式的数据,application/x-www-form-urlencoded 表示请求体是表单数据。

⑤ processData 属性
含义:用于指示 jQuery 是否应该自动将传入的数据(通过 data 配置项指定的)转换为查询字符串(对于 GET 请求)或发送为表单数据(对于 POST 请求),默认值为 true。

说明:当我们向服务器发送原始数据( JSON 数据、FormData 对象、Blob 或 ArrayBuffer 等二进制数据)时,应该将 processData 设置为 false。

⑥ data 属性
含义:用于指定发送到服务器的数据,类型可以是 Key/Value 对、JSON 字符串、FromData 对象等。

说明:数据类型为 Key/Value 对且 Value 为数组时,jQuery 将自动为不同值对应同一个名称,如 {foo:[“bar1”, “bar2”]} 将转换为 “&foo=bar1&foo=bar2”。

⑦ timeout 属性
含义:用于指定当前请求的最大请求时间,单位为毫秒。

说明:如果请求在该时间内未结束则会自动终止,同时执行 error 指定的回调。

⑧ beforeSend(jqXHR) 方法
含义:用于指定请求发送前的回调,若返回 false,则请求将被取消。

说明:它允许我们在请求发送前执行一些操作,比如设置请求头、修改发送的数据、根据某些条件取消请求等;其中参数 jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求。

⑨ success(data, textStatus, jqXHR) 方法
含义:用于指定请求成功后的回调。

说明:参数 data 表示服务器的响应体信息;textStatus 表示请求的状态,对于成功的请求,值通常是"success";jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求。

⑩ error(jqXHR, textStatus) 方法
含义:用于指定请求失败时的回调。

说明:参数 jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求;textStatus 表示请求的状态,对于失败的请求,值通常是"timeout"(请求超时)、“error”(请求未能成功完成)、“abort”(请求被中止)、“parsererror”(解析返回的数据时出错)等。

⑪ complete(jqXHR, textStatus) 方法
含义:用于指定请求完成后(无论成功或失败)的回调。

说明:它允许我们执行一些在请求结束后始终需要执行的代码,比如隐藏加载动画、清理资源等;其中参数 jqXHR 是 jQuery 对原生 XMLHttpRequest 对象的封装和扩展,提供了更多的方法和属性来处理 HTTP 请求;textStatus 表示请求的状态,值通常是"success"(请求成功完成)、“timeout”(请求超时)、“error”(请求未能成功完成)、“abort”(请求被中止)、“parsererror”(解析返回的数据时出错)等。

五、扩展知识
在早期的 jQuery 版本中,.ajax()函数返回其创建的XMLHttpRequest对象。然而,自jQuery1.5开始,jQuery团队在这个jqXHR对象的基础上,添加了对Promise接口的实现。这意味着,.ajax() 函数返回其创建的 XMLHttpRequest 对象。然而,自 jQuery 1.5 开始,jQuery 团队在这个 jqXHR 对象的基础上,添加了对 Promise 接口的实现。这意味着,.ajax()函数返回其创建的XMLHttpRequest对象。然而,自jQuery1.5开始,jQuery团队在这个jqXHR对象的基础上,添加了对Promise接口的实现。这意味着,.ajax() 函数现在返回的 jqXHR 对象同时拥有 XMLHttpRequest 对象的所有属性和方法,以及 Promise 接口提供的一系列新方法。Promise 提供了三个核心方法 .then()、.catch()、.finally(),用于处理异步操作的结果。其中,方法 .then() 用于指定 Promise 成功后或失败时的回调;.catch() 用于指定 Promise 失败时的回调;.finally() 用于指定无论 Promise 最终状态如何都会执行的回调。然而,jQuery 为了提供更符合其使用习惯的 API,在实现 Promise 接口的基础上,额外定义了 .done()、.fail()、.always() 方法。这些方法提供了与 .then()、.catch()、.finally() 类似的功能,但具有更明确的语义,使得代码在处理成功、失败和最终完成时的逻辑更加清晰。

$.ajax({
    type: 'POST',
    url: 'http://127.0.0.1:8080/saveData',
    //属性 contentType 用于告诉服务器请求体的数据类型是什么,默认值为 application/x-www-form-urlencoded,
    //application/json 表示请求体是 JSON 格式的数据,application/x-www-form-urlencoded 表示请求体是表单数据。
    contentType: 'application/json; charset=utf-8',
    //属性 processData 用于指定 data 属性值是否需要自动转换,默认为 true。
    processData: false,
    //属性 data 用于指定发送到服务器的数据,类型可以是 Key/Value 对、JSON 字符串、FromData 对象等,
    //JavaScript 内置对象 JSON 的方法stringify(),用于将 JavaScript 对象转换成 JSON 格式的字符串。
    data: JSON.stringify({ param1:value1,param2:value2 }),
    timeout: 2000
})
.done(function(data,textStatus,jqXHR){ //用于指定请求成功后的回调。
    console.log(data);
})
.fail(function(jqXHR,textStatus){ //用于指定请求失败时的回调。
    console.log("请求失败,请稍后重试!");
})
.always(function(jqXHR, textStatus){ //用于指定请求完成后(无论成功或失败)的回调。
    console.log(jqXHR.response);
})

值得注意的时,虽然 jQuery 的这些方法提供了便利,但在现代的 JavaScript 开发中,直接使用原生的 Promise 接口和 async/await 语法已经成为主流。这些现代 JavaScript 特性提供了更加强大和灵活的异步编程能力,同时保持了代码的简洁性和可读性。因此,对于新的开发项目,建议优先考虑使用原生的 Promise 接口和 async/await 语法。

jQuery AJAX 方法详解 AJAX(Asynchronous JavaScript and XML)是一种通过JavaScript在客户端与服务器之间进行异步通信的技术。它允许网页在不刷新页面的情况下,与服务器交换数据并更新部分网页内容。本文详细介绍了jQuery AJAX方法的使用,包括其基本概念、实现方式以及常用技巧。通过学习本文,读者可以掌握jQuery AJAX方法,并在实际项目中灵活运用。随着前端技术的不断发展,AJAX技术将在前端开发领域发挥越来越重要的作用。 阅读详情

相关推荐

使用ajax向服务器发起post请求(提交数据给服务器)

前端开发:网络请求后台数据,使用ajax向服务器发起post请求(提交数据给服务器)

Forever_Hopeful的博客 6037

$.ajax()方法详解

目录 1 Ajax操作 1.1 $.ajax 1.2 简便写法 1.2.1 $.get(),$.post() 1.2.2 $.getJSON() 1.2.3 $.getScript() 1.3 Ajax事件 1.4 返回值 1.5 中文乱码 1.5.1 解决方法一 1.5.2 解决方法二 1 Ajax操作 1.1 $.ajax jQuery对象上面还定义了Ajax方法($.ajax()),用来处理Ajax操作。调用该方法后,浏览器就会向服务器发出一个HTTP请求。 $.aj

上善若泪 8万+

使用jQuery的Ajax发送POST请求

回调函数中,我们可以处理请求成功后返回的响应数据。参数,我们可以传递要发送到服务器的数据。在示例代码中,我们使用了一个包含两个键值对的对象来表示数据。方法,我们可以方便地与服务器进行交互,并处理请求的响应。在示例代码中,我们将错误信息输出到控制台,你也可以根据实际情况进行处理。该方法允许我们指定请求的URL、请求类型、数据和回调函数等参数。需要注意的是,发送POST请求时,服务器端需要相应的处理来接收和处理请求中的数据。至此,我们已经学习了如何使用jQuery的Ajax功能发送POST请求。

DevWizard的博客 1563

jQuery-Ajax 详解

一、什么是Ajax Ajax的全称是Asynchronous JavaScript And XML(异步JavaScript和XML)我们可以理解为:在网页中利用XMLHttpRequest对象和服务器进行数据交互的方式就是Ajax,它可以帮助我们轻松实现网页与服务器之间的数据交互。 二,jQuery中的Ajax 在jQuery中,$.Ajax()方法属于最底层的方法,第2层是load(),$.get(),和$.post(),第3层是$.getScript()和$.getJSON()方法。 ...

m0_48982503的博客 1万+

【大模型】MHA,MQA,GQA及KV Cache详解

在自回归模型中(Autoregressive Models),模型会逐个生成文本的每个token,这个过程可能比较慢,因为模型一次只能生成一个token,而且每次新的预测都依赖于之前的上下文。这意味着,要预测第1000个token,你需要用到前999个token的信息,这通常涉及到对这些token的表示进行一系列矩阵乘法运算。而要预测第1001个token,你不仅需要前999个token的信息,还要加上第1000个token的信息。

酒酿小圆子呀~ 2611

卡诺图化简法注意事项+竞争冒险知识点总结

今天反思以下卡诺图化简法中的注意事项。 卡诺图看起来简单,但如果不熟悉的话很容易出错,因此要对画圈的规则比较熟悉。

weixin_42415266的博客 1万+

jquery的ajax,详解

jquery 的ajax,异步请求详解 自己老是记不住,做下笔录 写法 正常写法,不跨域情况 $.ajax({ type:"get",//请求方式 url:"",//请求的链接 async:true,//是否异步请求,默认true data:{name:"zhangsan",age:20},//请求参数 dataType:"json",//数据类型 ...

weixin_43832604的博客 244

真双口RAM---Quartus与Vivado开发环境区别对比

2、写和写冲突:表示两个端口写使能同时有效且写地址相同,此时需要关断一个写,把两个写端口都需要更新的值处理到一个写端口上面,任何的DP RAM 都不支持写和写冲突。以上述直方图统计使用为例,博主在仿真过程中发现,vivado真双口RAM--B端口读写延迟2个clk;1、读和写冲突:如果读和写同时有效,且读和写是同一个地址时,发生RAM读写冲突,此时会把最新的写数据直接赋给读数据,称为写穿通到读。

weixin_54470733的博客 3582

jQuery.ajax() 函数详解

jQuery.ajax()函数用于通过后台HTTP请求加载远程数据。 jQuery.ajax()函数是jQuery封装的AJAX技术实现,通过该函数,我们无需刷新当前页面即可获取远程服务器上的数据。 jQuery.ajax()函数是jQuery的底层AJAX实现。jQuery.get()、jQuery.post()、load()、jQuery.getJSON()、jQuery...

denghut882925的博客 184

Android系统开发面试指南:系统Launcher岗位解析

本文针对上海礼聪Android系统开发岗位(侧重系统Launcher、充电/电池/USB底层开发)提供面试指南。内容涵盖应用开发(启动流程优化)、系统底层(充电状态机、USBOTG)、编程能力(线程安全LRU实现)、问题排查(ANR分析)及沟通协作等核心考点。通过5类典型问题及技术深度解析,帮助候选人系统准备,重点考察Framework源码理解、系统调试能力和工程思维。建议结合PowerManagerService等模块源码和systrace工具进行实践准备,同时注重技术表达与协作能力的展现。

郑伟强dev的专栏 927

深度学习与西储大学轴承数据集(一)

西储大学数据集介绍

weixin_50642818的博客 1万+

jquery ajax中data属性详解

$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()   一、$.ajax的一般格式 $.ajax({      type: 'POST',      url: url ,     data: data ,     success: success ,     dataType: dataType });   二、$.ajax...

小小刚优快云 1万+

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1384

jquery的ajax参数详解

定义和用法 ajax() 方法通过 HTTP 请求加载远程数据。 该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用...

chongzhimei4631的博客 137

最新腾讯手游游戏appid列表及urlScheme一览 urlscheme查询

[全网独家] 2024最新腾讯游戏appid列表及urlScheme一览 手游包含王者荣耀QQ飞车我的世界PUBG吃鸡和平精英金铲铲之战三角洲行动QQ炫舞拳皇98OL欢乐斗地主 元梦之星使命召唤等

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jquery中的ajax方法详解

jquery中的ajax方法参数含义如下: 1.url:  要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type:  要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout:  要求为Number类型的参数,设置请求超时时间

想作会飞的鱼的博客 1312

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【精简版】jQuery 中的 Ajax 详解

精简的 jQuery 中的 Ajax 详解。

weixin_46485638的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jquery Ajax详解

参数: options 返回值: XMLHttpRequest 使用HTTP请求一个页面。这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script

fanzhenhua的专栏 2615

jQuery Ajax详解

jQuery Ajax简介: Ajax全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML)。Ajax其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest)异步地向服务器发送请求,服务器返回部分数据,浏览器让你去利用这些数据对象页面做部分的更新,整个过程,页面无刷新,不打断用户的操作。 JavaScript异步编程: 异步(Asynchronous, async)是与同步(Synchronous, sync)相对...

m0_61031325的博客 1868

JQuery的Ajax详解

$.ajax()方法使用 参数: type:请求的方式有get、post默认为get 写参数是注意要求为String类型所以要有双引号或者单引号包裹 url:请求资源的地址 timeout:请求超时的时间 类型为number async: 设置true为异步请求 设置false为同步请求 data::发送到服务器的数组 类型只能为 obj...

lin1072368472的博客 326

jQuery中的Ajax 详解

jQuery提供了几个用于发送Ajax请求的函数. 其中最核心也是最复杂的是jQuery.ajax( options ),所有的其他Ajax函数都是它的一个简化调用. 当我们想要完全控制Ajax时可以使用此结果, 否则还是使用简化方法如get, post, load等更加方便. 所以jQuery.ajax( options ) 方法放到最后一个介绍. 先来介绍最简单的load方法: 1.

Hello World! 1387

ajax用在那,AJAX在JQuery中的应用详解

AJAX在jQuery中的应用1. $.ajax()方法$.ajax()方法是一个功能十分强悍的一个底层方法,基于该方法实现的$.get()和$.post()都是常用的向服务器请求数据的方法。1.1 $.ajax()中的参数及使用方法$.ajax()调用的语法格式为:$.ajax([options])其中,可选参数[options]作为$.ajax()方法中的请求设置,其格式为key/value,...

weixin_35084134的博客 234
上一篇: Vue3响应式高阶用法之toRaw()
下一篇: 如何处理前端表单验证,确保用户输入合法?
Humble-H
博客等级 码龄6年 135粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值