ajax与jsonp的区别及用法


Posted in Javascript onOctober 16, 2018

首先我们应该知道ajax和jsonp可以与后台通信,获取数据和信息,但是又不用刷新整个页面,实现页面的局部刷新。

接下来我们就来看一下ajax和jsonp的区别。

ajax和jsonp的区别:

ajax是一种发送http请求与后台进行异步通讯的技术。其原理是实例化xmlhttp对象,使用此对象与后台通信。

一个完整的AJAX请求一般包括以下步骤:

(1)实例化XMLHttpRequest对象

(2)连接服务器

(3)发送请求

(4)接收响应数据

jsonp是一种可以实现跨域发送http请求的数据通信格式,可以嵌在ajax中使用。其原理是利用script标签可以跨域链接资源的特性。

JSONP由两部分组成:回调函数和数据,回调函数一般是在浏览器控制,作为参数发往服务器端(当然,你也可以固定回调函数的名字,但客户端和服务器端的名称一定要一致)。当服务器响应时,服务器端就会把该函数和数据拼成字符串返回。

JSONP的请求过程如下:

请求阶段:浏览器创建一个 script 标签,并给其src 赋值。

发送请求:当给script的src赋值时,浏览器就会发起一个请求。

数据响应:服务端将要返回的数据作为参数和函数名称拼接在一起(格式类似”jsonpCallback({name: 'abc'})”)返回。当浏览器接收到了响应数据,由于发起请求的是 script,所以相当于直接调用 jsonpCallback 方法,并且传入了一个参数。

最后:jsonp只支持get请求,ajax支持get和post请求。

Javascript 相关文章推荐
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
jquery入门—访问DOM对象方法
Jan 07 Javascript
JavaScript声明变量时为什么要加var关键字
Sep 29 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
Apr 20 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
Aug 02 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
Dec 07 Javascript
详解开发react应用最好用的脚手架 create-react-app
Apr 24 Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
Dec 22 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 #Javascript
QRCode.js二维码生成并能长按识别
Oct 16 #Javascript
移动端图片上传旋转、压缩问题的方法
Oct 16 #Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 #Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 #Javascript
jQuery轻量级表单模型验证插件
Oct 15 #jQuery
详解ESLint在Vue中的使用小结
Oct 15 #Javascript
You might like
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
jQuery消息提示框插件Tipso
2015/05/04 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
express启用https使用小记
2019/05/21 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
详解python中requirements.txt的一切
2017/03/03 Python
Python3 Random模块代码详解
2017/12/04 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
如何理解python面向对象编程
2020/06/01 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
python lambda的使用详解
2021/02/26 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
教师自我鉴定范文
2013/11/10 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
酒店开业策划方案
2014/06/02 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
运动会演讲稿100字
2014/08/25 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
财务人员入职担保书
2015/09/22 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
python3实现常见的排序算法(示例代码)
2021/07/04 Python