jQuery中JSONP的两种实现方式详解


Posted in Javascript onSeptember 26, 2016

前台代码如下:

jQuery中JSONP的两种实现方式详解

后台Action代码如下:

jQuery中JSONP的两种实现方式详解

运行后就可以看到结果了。我追踪了下后台ProcessCallback代码,如下图:

jQuery中JSONP的两种实现方式详解

可以看到jsonCallback的值为"jQuery17104721....",它是前端传给远程服务器后台Action的。这里 jQuery171..表示的是jQuery的版本,可以简单地将这个理解为JSONP类型请求回调函数,jQuery在我们每次指定Ajax请求方式为 JSONP时都会生成这么一个JSONP回调函数。虽然jQuery会自动帮我们生成一个回调函数,但是我们也可以通过设置 jsonpCallback 参数为jsonp请求定制一个我们自己的回调函数。

第一种方式下面这三行代码设定了JSONP请求方式:

dataType: "jsonp",

jsonp: "jsonpcallback",// 指定回调函数,这里名字可以为其他任意你喜欢的,比如callback,不过必须与下一行的GET参数一致

data: "name=jxq&email=feichexia@yahoo.com.cn&jsonpcallback=?", // jsonpcallback与上面的jsonp值一致

第二种方式则直接在GET参数后面带上jsonpcallback=?来标识。

我们可以推断这么做以后,jQuery内部机制就帮我们绕过了浏览器的跨域访问限制,然后就可以像正常请求同域Action一样请求跨域Action了。

最后返回的是一个函数表达式:

return jsonCallback + "(" + new JavaScriptSerializer().Serialize(user) + ")";

这样返回给前端的就是类似这种jQuery17104721....('{Name:"jxq", Email:"feichexia@yahoo.com.cn"}'),它一返回到前端就会执行,得到的是一个JavaScript对象,对象有两个属 性:Name和Email,所以我们可以直接调用json.Name和json.Email

通过此文,希望能帮助大家学习掌握此部分知识,谢谢大家对本站的支持!

Javascript 相关文章推荐
JSON无限折叠菜单编写实例
Dec 16 Javascript
使用js画图之饼图
Jan 12 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
原生js FileReader对象实现图片上传本地预览效果
Mar 27 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
vue渲染时闪烁{{}}的问题及解决方法
Mar 28 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
Aug 12 Javascript
JavaScript this关键字的深入详解
Jan 14 Javascript
javascript的函数劫持浅析
Sep 26 #Javascript
JavaScript中this的四个绑定规则总结
Sep 26 #Javascript
jQuery 选择器(61种)整理总结
Sep 26 #Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 #Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
Sep 26 #Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 #Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 #Javascript
You might like
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
普通员工辞职信
2014/01/17 职场文书
政治思想表现评语
2014/05/04 职场文书
质量负责人任命书
2014/06/06 职场文书
李白故里导游词
2015/02/12 职场文书
2015年公务员工作总结
2015/04/24 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
php访问对象中的成员的实例方法
2021/11/17 PHP
Python图像处理库PIL详细使用说明
2022/04/06 Python
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript