JSONP 教程

本章节我们将向大家介绍 JSONP 的知识。

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。

同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。


JSONP 应用

1. 服务端JSONP格式数据

如客户想访问 : http://www.runoob.com/try/ajax/jsonp.php?jsonp=callbackFunction。

假设客户期望返回JSON数据:["customername1","customername2"]。

真正返回到客户端的数据显示为: callbackFunction(["customername1","customername2"])。

服务端文件jsonp.php代码为:

jsonp.php 文件代码

<?phpheader('Content-type: application/json');//获取回调函数名$jsoncallback = htmlspecialchars($_REQUEST['jsoncallback']);//json数据$json_data = '["customername1","customername2"]';//输出jsonp格式的数据echo$jsoncallback . "(" .$json_data . ")";?>

2. 客户端实现 callbackFunction 函数

<scripttype="text/javascript">functioncallbackFunction(result,methodName){var html ='<ul>';for(vari = 0;i < result.length;i++){ html +='<li>' +result[i] +'</li>';} html +='</ul>';document.getElementById('divCustomers').innerHTML = html;}</script>

页面展示

<divid="divCustomers"></div>

客户端页面完整代码

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>JSONP 实例</title></head><body><divid="divCustomers"></div><scripttype="text/javascript">
functioncallbackFunction(result,methodName){ varhtml = '<ul>';for(vari = 0;i < result.length;i++){ html +='<li>' +result[i] +'</li>';} html +='</ul>';document.getElementById('divCustomers').innerHTML = html; }
</script><scripttype="text/javascript"src="http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction"></script></body></html>


jQuery 使用 JSONP

以上代码可以使用 jQuery 代码实例:

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>JSONP 实例</title><scriptsrc="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script></head><body><divid="divCustomers"></div><script>
$.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?",function(data){ varhtml = '<ul>';for(vari = 0;i < data.length;i++){ html +='<li>' +data[i] +'</li>';} html +='</ul>'; $('#divCustomers').html(html);});
</script></body></html>

JSON学习笔记(六)- JSONP相关推荐

  1. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  2. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  3. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  4. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  5. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  6. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. Polyworks脚本开发学习笔记(六)-比较运算、数学运算、逻辑运算及流程控制

    Polyworks脚本开发学习笔记(六)-比较运算.数学运算.逻辑运算及流程控制 前言 比较运算.逻辑运算及流程控制是编程的基本语法,Polyworks的语法规则与VB/C#/Python等并没有很大 ...

  9. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  10. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

最新文章

  1. C++友元函数和友元类(C++ friend)详解
  2. 兔子繁殖(easy)
  3. 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
  4. etc/ld.so.conf
  5. GWT HTTP请求替代
  6. moment转换时间戳_酷炫时间轮盘:JS元素圆形布局制作时间轮盘动画效果
  7. java 请求 https_JAVA后端请求HTTPS 的URL 遇到的问题
  8. java 读取clob字段的几种方法
  9. 计算机图标ps教程,Photoshop基础教程:路径组合工具打造中国银行标志
  10. 软件测试的简历里面,项目介绍要怎么写好呢
  11. 自定义数字时钟DigitalClockView
  12. 如何高效的自学编程(新手篇)
  13. edge浏览器设置启动时默认打开新标签页
  14. 【轮子】有权二部图中的最大匹配、最小匹配python轮子
  15. Hark的数据结构与算法练习之若领图排序ProxymapSort
  16. 《30岁之前的每一天》读书笔记
  17. ts类型声明declare
  18. 读书:孔庆东《笑书神侠》
  19. 解决anaconda下载pytorch慢问题(清华镜像源)
  20. 【流量池】品牌与流量(2)

热门文章

  1. 蓝桥杯 试题 基础练习 芯片测试——12行代码AC
  2. 0x0000050蓝屏srvsys_win7电脑蓝屏,显示的应该是srv.sys造成的,是什么情况?应该如何处理?...
  3. php中mysql和mysqli_PHP中mysql和mysqli的区别
  4. 磁盘与文件系统管理( 认识磁盘,了解磁盘,文件系统的建立与自动挂载)
  5. 小学计算机考查方案,宋家塘街道中心学校2020年理化生实验操作和信息技术考试方案...
  6. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  7. Java自带的线程池ThreadPoolExecutor详细介绍说明和实例运用
  8. JAVA 串口编程 (三)
  9. 实现3d图片移动_「3D建模」什么是动画和角色设计的3D索具?
  10. python自动炒股软件下载_python自动股票交易软件