| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 和Ajax斗志斗勇的日子 -> 正文阅读 |
|
[JavaScript知识库]和Ajax斗志斗勇的日子 |
作者:3.%24.ajax() |
? ? ? ? 终于!我也开始学习了Ajax!但是学完整个阶段,我只想说,这请求方式也太多了吧!!!对一个初学者来说,真的太难了!!!来看看我和Ajax斗智斗勇的那些辛酸史吧! 目录 一、Ajax简介1.什么是Ajax?? ? ? ? Ajax,Asynchronous JavaScript and?XML,即使用JavaScript语言与服务器进行异步交互,传输的数据为XML。 2.Ajax的优缺点? ? ? ? 优点:不需要重新加载整个页面,就可以实现与服务器交换数据并更新部分网页内容。 ? ? ? ? 缺点:在需要同步交互的时候,增多了对服务器的访问次数,有兼容性问题。 3.接口测试工具? ? ? ??Postman,可以直接测试接口能否正确运行。 二、jQuery中的ajax? ?1.$.get()? ? ? ? $.get() 方法使用 HTTP GET 请求从服务器加载数据。
例:获取id为1的图书列表
2.$.post()????????? $.post() 方法使用 HTTP POST 请求从服务器加载数据。
例:添加图书
3.$.ajax()? ? ? ? $.ajax()既可以向服务器请求数据,又可以向服务器提交数据
例1:使用$.ajax()向服务器请求数据
例2:使用$.ajax()向服务器发送数据
使用ajax上传文件 ? ? ? ? ?文件上传时,不再是普通的String类型,需要用到H5的FormData方法,同时在ajax中加上两条属性:
例:上传头像文件 4.ajaxStart()????????ajaxStart() 方法规定Ajax请求开始时运行的函数。该方法会监听当前文档中的所有Ajax请求。
注意:自 jQuery 版本 1.8 起,该方法只被附加到文档。 5.ajaxStop()????????ajaxStop()方法规定所有的Ajax请求完成时运行的函数。
注意:自 jQuery 版本 1.8 起,该方法只被附加到文档。 三、XMLHttpRequest1.XMLHttpRequest 简介????????1.什么是XMLHttpRequest对象? ????????XMLHttpRequest 对象用于在后台与服务器交换数据。 ? ? ? ? ?由图可知,jQuery中的Ajax方法是基于XMLHttpRequest对象封住出来的。 ????????2.创建 XMLHttpRequest 对象的语法:
? ? ? ? 3. xhr对象的readyState属性 ? ? ? ? 该属性用来表示当前Ajax请求所处的状态。每个Ajax请求必然处于一下状态中的一个。 2.使用xhr发起get请求
3.使用xhr发起post请求
注意:设置Content-Type是一个固定写法,必须写在open()后面send()前面。 ? ? ? ? 例:使用xhr上传文件 ? ? ? ? 注意:在使用xhr传递参数时,一定要将传递的参数对象改写成拼接字符串的形式再传递,否则会传不进去!!!! 四、Axios1.什么是axios? ? ? ? Axios是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。简单理解就是ajax的封装。 ? ? ? ? 相比于原生的XMR对象,axios简单易用;相比于jQuery,axios更加轻量化。只专注于网络数据请求。? 2.axios发起get请求
例:使用axios发起get请求
?注意:res.data才是服务器响应回来的真实数据,res是axios为我们包装的数据。 3.axios发起post请求
例:使用axios发起post请求
4.axios发起请求? ? ? ? axios中也提供了类似jQuery中的$.ajax()的函数。语法如下:
注意:根据请求的类型不同,提交参数的方式也不同! 例:使用axios发起get请求
例:使用axios发起post请求
五、JSONP1.JSONP简介
? ? ? ??Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
? ? ? ??同源策略:是浏览器提供的一个安全功能,它不允许非同源网站之间进行资源的交互,此时我们可以采用jsonp实现跨域获取数据。
? ? ? ? 通过<script>标签中的src属性实现跨域数据访问。注意,jsonp和Ajax之间没有任何关系!!放在本篇是因为也是一种获取数据的方式。同时,jsonp只支持GET数据请求,不支持POST数据请求。 2.自定义JSONP
? ? ? ? ?在jsonp中参数是通过url拼接传递。 3.jQuery中的JSONP? ? ? ? jQuery不仅可以发起真正的Ajax请求,也可以发起jsonp请求。只需要在发起请求时添加dataType:'jsonp',此时发起的就是jsonp数据请求。在jQuery中的jsonp请求实现原理是动态添加和移出<script>标签。
? ? ? ? 此时我们打开开发者工具发现,XHR中不再有请求记录,在js中有请求记录,证明这是一个jsonp请求。 ?????????另外,使用jQuery发起jsonp请求,jQuery会给我们返回一个回调函数属性名和回调函数参数值名字,我们可以通过jsonp和jsonpCallback来指定。 指定前: 指定后: ?指定语句: ????????? ? ? ? ? 通篇梳理下来,在刚接触这个阶段,我们需要熟练使用用ajax和axios发起数据请求以及使用jsonp实现跨域数据请求,这里面的弯弯绕绕说多不多说少不少的,多理解多运用总是可以掌握的,在跟Ajax斗智斗勇几天后,终于可以硬气的说,拿下!! |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:55:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |