$.ajax异步请求总结
创始人
2024-02-10 15:19:42
0

$.ajax()简单介绍

AJAX 是一种与服务器交换数据的技术,可以在不重新载入整个页面的情况下更新网页的一部分

$.ajax()是万能的,是最基础,最全面的那个;剩余的方法都是针对某种特定场景下的$.ajax()的简化形式
$.ajax()、$.post()、$.get()这三个方法都是Ajax方法中一种与服务器交换数据的请求类型。
$.post() 是post请求时的$.ajax()的简写形式;
$.get() 是get请求时的$.ajax()的简写形式。

$.ajax()基础浏览器请求和响应头常识

1.携带的参数data是可选的,关注var xhr = createXHR();
$.ajax contentType 和 dataType ,
contentType 主要设置你发送给服务器的格式,
dataType设置你收到服务器数据的格式
ContentType 用来告诉服务器当前发送的数据是什么格式
Accept 用来告诉服务器,客户端能认识哪些格式,最好返回这些格式中的其中一种
consumes 用来限制ContentType
produces 用来限制Accept

在http 请求中,get 和 post 是最常用的。在 jquery 的 ajax 中, 
contentType都是默认的值:application/x-www-form-urlencoded,
这种格式的特点就是,name/value 成为一组,每组之间用 & 联接,而 name与value 则是使用 = 连接。
如: wwwh.baidu.com/q?key=fdsa&lang=zh 这是get, 而 post 请求则是使用请求体,参数不在 url 中,
在请求体中的参数表现形式也是: key=fdsa&lang=zh的形式。
如果传递的data数据是单层嵌套的json格式字符串,则默认格式即可,如果是有多层嵌套的复杂json格式字符串,
则需要修改contentType:‘application/json’,不然服务端拿不到数据。

$.ajax()基础写法

$.ajax({url,type,data,dateType,callback(success,error)});
$.post(url,data,callback,type);

#这个record象征接收传参
function wait_Dispatch_Function(record){debugger;var parameter = {id:record.id};$.ajax({url:"",type:"",data: {id:record.id},dataType:"json",	//服务器数据返回类型success:function (res,xhr) {},error:function (xhr,status,info) {alert("获取结果失败",xhr+status+info);}})
}

$.ajax()写法分析

1.type:请求方式,常见post、get方式
2.data:请求携带的参数携带的参数data是可选的
3.dataType:告诉服务器接收返回的数据类型为json,就是接口返回的数据类型为json才能匹配此路径,
那么此接口在返回数据的时候做返回数据类型的处理,常用的是JSONObejec方法封装key 和 value
4.success:接口请求服务器处理成功执行的函数
5.error:接口请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。
注意:ajax中success反映的是请求接口成功或者失败的一种状态

$.ajax()简写 post方式

语法格式

selector:选择器
$(selector).post(URL,data,function(data,status,xhr),dataType).error(function (xhr, status, info) {alert("error");
});
dataType:告诉服务器接收返回的数据类型为json,就是接口返回的数据类型为json才能匹配此路径,
那么此接口在返回数据的时候做返回数据类型的处理,常用的是JSONObejec方法封装key 和 value

简写举例:

function wait_Dispatch_Function(record) {
$.post("url",{id:record.id},function (res) {if(res.result == "success"){//一种判断标志的定义	var data =res.yourKeyName;var message =res.message;//依次类推其他相关处理,比如给前台数据赋值刷新页面......}else{			}},"JSON").error(function (xhr, status, info) {//根据xhr状态码继续细分并返回给前端浏览器if(xhr.status == 500){//do something 服务器内部错误alert("提示:服务器内部错误");}if(xhr.status == 404){//do something 路径错误alert("提示:路径找不到");}//依次类推......alert("error");
});
}

$.ajax()请求的接口内的数据处理

举例

#控制层
@Controller
@RequestMapping("/yourFunction")
public class yourFunctionController {
@AutowiredyourClassService yourService;@RequestMapping("/yourFunctiondetailway")@ResponseBodyString yourFunctiondetailway(Integer id) {return yourService.yourFunctiondetailway(id);}
}#实现层
@Override
public String yourFunctiondetailway (Integer id ){JSONObject jObject = new JSONObject();jObject.put("result", "fail");jObject.put("message", "查询失败");try{//doFuntionHandle......jObject.put("result", "定义成功的标志");//可以为 200或者 successjObject.put("message", "查询成功");jObject.put("yourkeyName", value1);jObject.put("yourkeyName", value2);		}catch (Exception e) {jObject.put("message", "XXX异常报错:"+e.toString());e.printStackTrace();}		return jObject.toJSONString();
}

$.ajax()请求复杂处理

菜鸟教程
参考这个同志总结
在这里插入图片描述

dataType

要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
json:返回JSON数据。
jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。

相关内容

热门资讯

太原重工被立案后累计换手率12... 雷达财经雷助吧出品 文|肖文竹 编|深海 7月31日,太原重工股价报收于2.35元/股,振幅2.89...
湖南修改环保条例,严禁溶洞天坑... 三湘都市报8月1日讯(全媒体记者 罗艾敏 通讯员汪子悦)7月31日,湖南省十四届人大常委会第十七次会...
江西省财政厅原厅长黄平已任财政... 澎湃新闻记者从财政部政策研究室网站获悉,黄平已任财政部政策研究室主任。 公开资料显示,黄平,男,汉族...
Anthropic 实测:顶级... 多年来,人们对“流氓人工智能”的担忧大多局限于科幻小说——充其量也只是遥远未来的问题。但2025年6...
娃哈哈宗氏百亿财产纠纷案最新消... 现场法官并未出庭,只是由双方律师签署文件,而双方当事人也并未出现。 此前,21世纪经济报道记者从香港...
郑州:科技政策深度解读 助力企... 大象新闻记者 池里军 王震 7月31日下午,科技政策深度解读与应用宣讲会在郑州市鲲鹏软件小镇京东(郑...
外媒:施压鲍威尔,特朗普呼吁美... 参考消息网8月1日报道据新加坡《联合早报》网站8月1日报道,美国总统特朗普表示,如果美联储主席鲍威尔...
原创 2... 在乌克兰东部战略要地红军城,俄乌双方集结了超过20万的兵力,形成了一场前所未有的对峙局面。这场看似即...
高温红色预警!重庆中心城区热岛... 晴热高温持续 重庆今日上午发布 高温红色预警信号 森林草原火险橙色预警信号 请大家注意防范 8月1日...
边道奇迹!覃海洋200米蛙泳再... 北京时间8月1日消息,在今天进行的2025世界泳联世锦赛男子200米蛙泳决赛,身处第8泳道的中国选手...