JSONP之我见


Posted in Javascript onMarch 24, 2015

JavaScript初学,一点自己的理解,有不当之处请大家指正~

JSONP:

本地html文件要获取xxx网站(跨域)数据时使用的方法。

跨域问题:

外部服务器的数据只能用外部服务器中的js访问,本地js无法用XMLHttpRequest()访问。

外部服务器中的Web服务提供JSON数据,比如在http://gumball.wickedlysmart.com/中,数据包含在函数updateSales中作为参数,现在要在本地html中访问外部服务器中的JSON数据该怎么办呢?

1, 查看Web服务文档,明确服务实际使用的参数名(本例只有一个参数即一个对象数组);
2, 在url中指定一个回调函数,http://gumball.wickedlysmart.com/?callback=updateSales,用来指定Web服务中访问JSON数据的函数名;
3, 在本地js文件中使用刚才定义的函数名创建函数updateSales(对象),编写处理得到外部JSON数据的方法;
4, 在html文件中的<body>标签下使用<script>标签链接到外部Web服务,url为2中的那个路径。

总结:

JSONP目的在于提供给本地html一个函数接口(本地html可通过在url后方加入?callback=functionName的方法指定函数名),为了确保数据访问的安全,服务器将安全的数据放在回调函数的参数中,函数内部的参数就是服务器提供给本地的数据,至于怎么使用这些数据就要在本地的js中定义这个callback函数了。

注意:本地使用JSONP请求访问Web服务,可能会获取不安全的Js代码,所以要确保信任这个Web服务。

JSONP与XMLHttpRequest:

         XMLHttpRequest用于开发内部Web服务,内部访问内部,同域访问会更加简便。

         访问外部数据时(跨域访问)就要使用JSONP。

以上所述就是本文的全部内容了,希望大家能够喜欢,能够对大家学习jsonp有所帮助。

Javascript 相关文章推荐
JavaScript prototype对象的属性说明
Mar 13 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
详解Vue 开发模式下跨域问题
Jun 06 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
vue使用代理解决请求跨域问题详解
Jul 24 Javascript
vue 二维码长按保存和复制内容操作
Sep 22 Javascript
JavaScript将数字转换成大写中文的方法
Mar 23 #Javascript
自定义jQuery插件方式实现强制对象重绘的方法
Mar 23 #Javascript
jQuery定义背景动态切换效果的方法
Mar 23 #Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
Mar 23 #Javascript
jQuery实现拖拽效果插件的方法
Mar 23 #Javascript
jQuery操作表单常用控件方法小结
Mar 23 #Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 #Javascript
You might like
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python常用知识梳理(必看篇)
2017/03/23 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
骨干教师培训制度
2014/01/13 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
采购意向书范本
2014/03/31 职场文书
办理收楼委托书范本
2014/10/09 职场文书
教师调动申请报告
2015/05/18 职场文书
Python制作动态字符画的源码
2021/08/04 Python
python中的3种定义类方法
2021/11/27 Python
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server