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 相关文章推荐
js加解密 脚本解密
Feb 22 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
node.js读取文件到字符串的方法
Jun 29 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
Nov 28 Javascript
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
vue router 配置路由的方法
Jul 26 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
基于JS实现快速读取TXT文件
Aug 25 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 echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
js的回调函数详解
2015/01/05 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
基于python代码批量处理图片resize
2020/06/04 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
初中生三年学习生活的自我评价
2013/11/03 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
世博会口号
2014/06/20 职场文书
教书育人演讲稿
2014/09/11 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
工作简历自我评价
2015/03/11 职场文书
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python