【04】JSONP 教程
JSONP 教程
Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。
同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。
JSONP 应用
1. 服务端JSONP格式数据
假如客户想访问 : http://www.baidu.com/try/ajax/jsonp.php?jsonp=callbackFunction。
假设客户期望返回JSON数据:["customername1","customername2"]。
真正返回到客户端的数据显示为: callbackFunction(["customername1","customername2"])。
服务端文件jsonp.php代码为:
<?phpheader('Content-type: application/json');//获取回调函数名$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);//json数据$json_data ='["customername1","customername2"]';//输出jsonp格式的数据echo $jsoncallback ."(". $json_data .")";?>
2. 客户端实现 callbackFunction 函数
<script type="text/javascript">function onCustomerLoaded(result, methodName){var html ='<ul>';for(var i =0; i < result.length; i++){html +='<li>'+ result[i]+'</li>';}html +='</ul>';document.getElementById('divCustomers').innerHTML = html;}</script>
页面展示
<div id="divCustomers"></div>
客户端页面完整代码
<!DOCTYPE html><head><title>JSONP 实例</title></head><body><div id="divCustomers"></div><script type="text/javascript">function callbackFunction(result, methodName){var html ='<ul>';for(var i =0; i < result.length; i++){html +='<li>'+ result[i]+'</li>';}html +='</ul>';document.getElementById('divCustomers').innerHTML = html;}</script><script type="text/javascript" src="http://www.baidu.com/try/ajax/jsonp.php?jsoncallback=callbackFunction"></script></body></html>
jQuery 使用 JSONP
以上代码可以使用 jQuery 代码实例:
<!DOCTYPE html><html><head><title>JSONP 实例</title><script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.js"></script></head><body><div id="divCustomers"></div><script>$.getJSON("http://www.baidu.com/try/ajax/jsonp.php?jsoncallback=?", function(data){var html ='<ul>';for(var i =0; i < data.length; i++){html +='<li>'+ data[i]+'</li>';}html +='</ul>';$('#divCustomers').html(html);});</script></body></html>
【04】JSONP 教程的更多相关文章
- 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错
		
原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...
 - 分布式进阶(一)Windows 7下硬盘安装Ubuntu 14.04图文教程
		
Windows 7下硬盘安装Ubuntu 14.04图文教程 本人下载的是ubuntu-14.04.2-desktop-amd64.iso,经本人亲自测试的,折腾了一天的时间. 1)首先还是分区,在计 ...
 - JSONP 教程
		
JSONP 教程 本章节我们将向大家介绍 JSONP 的知识. Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获 ...
 - KinectV1+Ubuntu 14.04安装教程
		
前言 个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/ 如有任何问题,feel free to ...
 - Win10系统下安装Ubuntu16.04.3教程与设置
		
在Win10上刚刚装好Ubuntu16.04.3,装了不下于10次,期间出现很多问题,趁着还有记忆,写下这篇教程,里面还有Ubuntu系统的优化与Win10的一些设置. Part 1 制作Ubuntu ...
 - 用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程
		
用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu 作者:TeliuTe 来源:基础教程网 1.准备Ubuntu安装文件 1)下载带amd的64位 Ubuntu 桌面版光盘镜像文件,如 ...
 - 在win10下安装双系统ubuntu16.04.3教程
		
闲暇了两天,终于想起来要装一个Liunx系统了.于是捣鼓了一番,实现了在Win10下安装Ubuntu16.04.3版本. 一.准备工作 下载Ubuntu 16.04.3镜像 准备一个2G以上的U盘 下 ...
 - 安装WIN10+Ubuntu18.04安装教程(实测有效)
		
转载原文链接:https://www.cnblogs.com/masbay/articles/10745170.html 安装过程中尤其注意分区时候的挂载点一定要选对!!!选择Ubuntu的EFI所在 ...
 - VMware12安装虚拟机教程、Ubuntu16.04安装教程(包括vmware tools的安装)
		
转自https://jingyan.baidu.com/article/c275f6ba07e269e33d756714.html 方法/步骤 1 虚拟机.Linux操作系统介绍及下载地址 虚拟机VM ...
 
随机推荐
- ruby on rails, api only, 脚手架
			
rails new connector_api --api --database=postgresql bundle install rake db:create rails g scaffold i ...
 - Linux系统基本信息查看
			
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a (Linux查看版本当前操作系统内核信息) 2.# ...
 - bzoj 4806: 炮【dp】
			
同1801 注意到一行只能放012个炮,我们只需要知道列的状态,不用状压行 所以设f[i][j][k]表示前i行有j列有1个炮,有k列有2个炮的方案数 然后分情况讨论转移就行了 #include< ...
 - bzoj 1655: [Usaco2006 Jan] Dollar Dayz 奶牛商店【高精度+完全背包】
			
居然要用高精度! 懒得operator了,转移是裸的完全背包 #include<iostream> #include<cstdio> using namespace std; ...
 - Gamma阶段测试计划
			
前言 点击这一链接访问公课网(笨拙软件工程组). 一.Alpha阶段场景测试 1.1 鹿丸:无欲无求大三学生 保研无望 不在乎给分 只想选择干货多的课程 充实自己 需求和目标:了解各专业课程的授课内容 ...
 - NET 编程题
			
1.C#编写创建一个线程的代码 using System; using System.IO; using System.Threading ; class MyThread{ public int c ...
 - Manacher HDOJ 5371 Hotaru's problem
			
题目传送门 /* 题意:求形如(2 3 4) (4 3 2) (2 3 4)的最长长度,即两个重叠一半的回文串 Manacher:比赛看到这题还以为套个模板就行了,因为BC上有道类似的题,自己又学过M ...
 - ASP.NET MVC 生成验证码
			
using System.Web.Mvc; using System.Drawing; using System; using System.Drawing.Imaging; using Models ...
 - css边框样式、边框配色、边框阴影、边框圆角、图片边框
			
边框样式 点线式边框 破折线式边框 直线式边框 双线式边框 槽线式边框 脊线式边框 内嵌效果的边框 突起效果的边框 <div style="width: 300px; height: ...
 - (1)HTML声明与基础(已入垃圾筐)
			
来自网站http://www.runoob.com/html/html-intro.html <!DOCTYPE/> 声明 Doctype=Document Type=文档类型说明 htt ...