JavaScript之原生ajax && jQuery之ajax
ajax提供了异步访问服务器的方法,使页面无须刷新就可以更改页面内容,在实际情况中使用原生的情况较少但是原理需要掌握,一般都是使用jquey更轻量级的实现ajax但是原理是共同的。
原生ajax使用过程:
1.创建ajax核心对象
IE浏览器核心对象为XMLHTTP,其他浏览器核心对象为XMLHTTPRequest,因此为了解决不同浏览器的兼容问题需要对浏览器核心对象进行判断
var xmlhttp;
if(window.XMLHTTP){
xmlhttp=new XMLHTTPRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//ie6以下版本
}
2.创建请求
open()中有三个参数,第一个参数是请求方式,有两种get和post,两者区别在于get更快更便捷,在以下几种情况必须用post方式
(1)向服务器发送大量数据的时候;
(2)发送包含未知字符输入的时候,比如表单中的提交信息是由用户所撰写的
(3)无法使用缓存文件的时候
第二个参数是后端文件的地址,第三个参数是否异步,只有为true时才可异步,开启信息传送
xmlhttp.open("get","example.php",true);
3.发送请求参数
不同的页面需求不同,需要获取不同的数据需要依靠请求参数实现,多个请求参数之间以&连接
xmlhttp.send("user="+user&"password="+password);
只有post请求的参数才能够放在send中,如果是get请求的方式,参数不允许放在send()中,而是要放在后端数据文件地址后面以?连接,并且还要在中间加上请求头
xmlhttp.open("get","example.php?user="+user+"&password="+password",true);
xmlhttp.setRequestHeader("content-Type","application/x-www-form-urlencoded");
xmlhttp.send(null);
4.接受响应
页面有五种请求状态readyState,0:尚未初始化 1:正在发送请求 2:请求完成 3:接受响应 4:响应完毕
服务器返回状态status 404:找不到页面 200:响应成功 500:内部服务器错误
xmlhttp.onreadystatechange=functino(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
var date = xmlhttp.responseText //使用文本格式拿数据,也有其他方式获取数据请自便
}
}
jquery ajax使用过程:
1.post请求方式
$.ajax({
type:'POST', //请求方式
url:'example.php', //发送请求的地址
dataType:'json', //服务器返回的数据类型
data:{name:xxx,age:xxx}, //发送到服务器的数据,对象必须为key/value的格式,jquery会自动转换为字符串格式
success:function(data){
//请求成功,返回内容
},
error:function(jqXHR){
//请求失败,返回内容
}
});
2.get请求方式
$.ajax({
type:'GET',
url:'example.php?name'+=xxx, //发送请求的地址以及传输的数据
dataType:'json', //服务器返回的数据类型
success:function(data){
//请求成功,返回内容
},
error:function(jqXHR){
//请求失败,返回内容
}
});
JavaScript之原生ajax && jQuery之ajax的更多相关文章
- JS原生Ajax&Jquery的Ajax技术&Json
1.介绍Ajax Ajax = 异步 JavaScript 和 XML Ajax是一种创建快速动态网页的技术 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以不用整个 ...
- 原生和jQuery的ajax用法
jQuery的ajax方法: $.ajax({ url:'/comm/test1.php', type:'POST', //GET async:true, //或false,是否异步 data:{ n ...
- Ajax 原生和jQuery的ajax用法
https://www.cnblogs.com/jach/p/5709175.html form数据的序列化: $('#submit').click(function(){ $('#form').se ...
- 原生和jquery 的 ajax
form数据的序列化: $('#submit').click(function(){ $('#form').serialize(); //会根据input里面的name,把数据序列化成字符串:eg:n ...
- 前端 - js方式Ajax/ jquery方式Ajax / 伪 ajax /伪ajax 进阶方式
DJANGO环境搭建: 目录文件: 关闭CSRF 添加目录文件路径 配置url 视图配置: index页面配置: 测试:(成功) 进入正题: ajax 通过GET提交数据至后台: <!DOCTY ...
- Jquery调用ajax,出现一直跳转到error问题
今天做项目的时候,遇到ajax请求,一直都是跳转到了error部分,一直没有进入success部分 后来查了一下网上的资料,有两三种说法, 一种是将dataType :'json',改成你相应的版本, ...
- 锋利jQuery 学习整理之 第六章 jQuery 与Ajax 的应用
1.Ajax 的XMLHttpRequest 对象 XMLHttpRequest 是Ajax 的核心,它是Ajax 实现的关键---发送异步请求.接受响应及执行回调都是通过它来完成的.XMLHttpR ...
- jQuery 与 Ajax 的应用
Ajax 全称为 "Asynchronous JavaScript and XML"(异步 JavaScript 和 XML ),它并不是指一种单一的技术,而是有机地利用了一系列交 ...
- 第6章 jQuery与Ajax的应用
6.1 Ajax的优势和不足 6.1.1 Ajax的优势 1.不需要插件支持 2.优秀的用户体验 3.提高Web程序的性能 Ajax模式只是通过XMLHttpRequest对象向服务器端提交希望提交的 ...
- 根据JavaScript中原生的XMLHttpRequest实现jQuery的Ajax
基本介绍 XmlHttpRequest XmlHttpRequest是JavaScript中原生的,历史悠久的一种发送网络请求的方案. 基本上所有前端框架对于网络请求的部分都是基于它来完成的. 在本章 ...
随机推荐
- Redis 菜鸟进阶
Redis 菜鸟进阶 背景 最近产品一直要优化性能,加强高可用. 有一个课题是Redis高可用与性能调优. 我这边其实获取到的内容很有限. 最近济南疫情严重,自己锁骨骨折. 然后通勤时间基本上都用来查 ...
- linux线程调度策略
linux线程调度策略 这是一篇非常好的关于线程调度的资料,翻译自shed 目录 linux线程调度策略 Scheduling policies SCHED_FIFO: First in-first ...
- echarts轮训展示某个
//学校资产占比的配置 function schollAssets() { var myChart = window.$echarts.init( document.getElementById('s ...
- Harbor系统文章01---Linux安装Harbor
1.切换到指定目录下载harbor安装包 wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v ...
- DotLiquid(.net模版引擎)
可用生成C#代码,在KSFramework中有使用:https://github.com/mr-kelly/KSFramework 主页:http://dotliquidmarkup.org/ 文档: ...
- ansible使用,搭建mongo的replica-set小结
ansible 前言 常用到的指令 查看ip是否可用 执行 执行,查看日志输出 查看这个 playbook 的执行会影响到哪些 hosts 设置服务器免密登录 ansible了解 变量名的使用 pla ...
- 人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF
人工智能LLM模型:奖励模型的训练.PPO 强化学习的训练.RLHF 1.奖励模型的训练 1.1大语言模型中奖励模型的概念 在大语言模型完成 SFT 监督微调后,下一阶段是构建一个奖励模型来对问答对作 ...
- 【1】windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置
相关文章: [1]windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置 [2]Visual Studio 2017同时配置OpenCV2.4 以及O ...
- 驱动开发:如何枚举所有SSDT表地址
在前面的博文<驱动开发:Win10内核枚举SSDT表基址>中已经教大家如何寻找SSDT表基地址了,找到后我们可根据序号获取到指定SSDT函数的原始地址,而如果需要输出所有SSDT表信息,则 ...
- 基于minsit数据集的图像分类任务|CNN简单应用项目
Github地址 Image-classification-task-based-on-minsit-datasethttps://github.com/Yufccode/CollegeWorks/t ...