JSONP 教程

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

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

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

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


JSONP 应用

1. 服务端JSONP格式数据

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

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

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

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

<?php
header('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 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>

页面展示

<div id="divCustomers"></div>

客户端页面完整代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<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.rm5u.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.rm5u.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>

更多专业前端知识,请上 【猿2048】www.mk2048.com

JSON 使用 教程相关推荐

  1. Swift语言中如何使用JSON数据教程

    原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift- ...

  2. js修改本地json文件_Flutter加载本地JSON文件教程建议收藏

    今天农村老家的天气不是很好 而且外面还下雨了,每天只能坐在老家 打开电脑,看看文章,写写文章 今天我给大家带来一篇Flutter加载本地JSON文件教程 本头条核心宗旨 欢迎来到「技术刚刚好」作者,「 ...

  3. AE制作Json动画教程

    本文将从为什么要做动画,到动画实现方式,再到用AE+Bodymovin制作动画,结合实际案例行分享,希望给新手带来一些启发. 首先我们来聊聊,我们为什么要做动效? 1.突出产品某项功能 在APP中,我 ...

  4. JSON(json)详细教程

    JSON详细教程 一.什么是JSON? 二.JSON的语法规则 具体规则: 1.JSON名称/值对 2.JSON的值的类型 1. 数字(整数或者浮点数) 2. 字符串(在双引号中) 3. 逻辑值(tr ...

  5. 阿里json解析教程

    阿里json解析教程 第一步:引入阿里json解析工具jar包 第二步:见代码 { { "AppRequest":{ "name":"xiaomign ...

  6. iOS Swift JSON解析教程

    In this tutorial, we will learn how to parse a JSON response in our iOS Application using Swift. We ...

  7. Asp.Net Newtonsoft.Json使用教程

    json序列化和反序列化的使用教程 实体 public class wendaModel {private string _title;private string _cons;public stri ...

  8. echarts map地图数据Json制作教程

    首先来一个echarts map地图使用的教程(对应地图的数据包我的下载里有 echarts地图离线数据包 有需要的可以自行下载或在博客下留言我会单独发你) <!DOCTYPE html> ...

  9. Jackson解析JSON数据教程

    Json解析-Jackson使用教程 日常求赞,感谢老板. 欢迎关注公众号:其实是白羊.干货持续更新中- 一.JSON解析 我这里指的解析是:JSON和JavaObject之间的序列化和反序列化. 如 ...

最新文章

  1. python无效数据怎么办_Python使用sqlite插入数据无效的原因
  2. 鸿蒙os2.0通知栏,网友上手鸿蒙手机OS 2.0公测版:界面与EMUI已有明显不同
  3. 附笔记pdf下载,MIT中文线性代数课程精细笔记[第四课]
  4. 爬虫笔记12完结篇实例:股票
  5. nssl1148,jzoj5461-购物【可撤回贪心,堆】
  6. 2017-2018-1 20155229 《信息安全系统设计基础》第十四周学习总结
  7. c gui qt 4编程第二版_一本专门学习PyQt5 GUI编程的书
  8. windbg分析Kernel32.dll导出表
  9. oracle11 g ora 03113,解决oracle11g ORA-32004: obsolete or deprecated parameter(s)
  10. 基于sklearn的西瓜数据集的SVR回归实现
  11. 软考高级系统架构设计师:五大类安全服务
  12. 网络编程I/O模型分析
  13. Python自动生成表情包 斗图再无对手!
  14. cad2010背景怎么调成黑色_板绘初学者上色灰暗怎么解决?做好明暗关系上色没烦恼!...
  15. Google收录了内页,但是百度不收录新站内页
  16. 从内外参到 Structure From Motion(SFM)
  17. php+memcached缓存安装说明
  18. 金蝶云星空管理中心,初始化密码
  19. 2020微信支付之PC网站(Native)支付详解
  20. 新手学Untiy的学习路线

热门文章

  1. linux开机自动启动开机日志,设置linux开机自动运行脚本
  2. 伪随机交织抑制突发噪声的MATLAB仿真(采用(2,1,3)卷积码)
  3. 图神经网络PGL助力国民级音乐App,创新迭代千亿级推荐系统(人工智能应用案例)
  4. Java面向对象(3)--类的成员方法
  5. linux权限体系有哪些角色,详解Linux下系统权限
  6. t’触发器真值表和状态方程_清写出触发器按逻辑特性的分类;写出T触发器的状态方程。...
  7. NOIP模拟测试26「嚎叫响彻在贪婪的机房·主仆见证了 Hobo 的离别·征途堆积出友情的永恒」...
  8. Grid表格的js触发事件
  9. [Java开发]打印当前路径到控制台
  10. DataURL与File,Blob,canvas对象之间的互相转换的Javascript (未完)