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 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
Nov 25 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
JS闭包可被利用的常见场景小结
Apr 09 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
JS实现随机抽取三人
Nov 06 Javascript
javascript 易错知识点实例小结
Apr 25 Javascript
JavaScript组合继承详解
Nov 07 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网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python调用C++程序的方法详解
2017/01/24 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
2018/09/03 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
python实现字符串和数字拼接
2020/03/02 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
教师研修随笔感言
2014/01/23 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
放弃继承权公证书
2015/01/23 职场文书
Python爬取某拍短视频
2021/06/11 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL