好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

JSONP 教程

JSONP 教程

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

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

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

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

JSONP 应用

1. 服务端 JSONP 格式数据

如客户想访问 : https://www.hdhcms.com/try/ajax/jsonp.php?jsoncallback=callbackFunction 。

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

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

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

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 > < html > < head > < meta charset = " utf-8 " > < 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 = " https://www.hdhcms.com/try/ajax/jsonp.php?jsoncallback=callbackFunction " > </ script > </ body > </ html >

jQuery 使用 JSONP

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

< ! DOCTYPE html > < html > < head > < meta charset = " utf-8 " > < title > JSONP 实例 </ title > < script src = " https://cdn.static.hdhcms.com/libs/jquery/1.8.3/jquery.js " > </ script > </ head > < body > < div id = " divCustomers " > </ div > < script >

$. getJSON ( " https://www.hdhcms.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 >

查看更多关于JSONP 教程的详细内容...

  阅读:24次

上一篇

下一篇

第1节:jQuery – AJAX get() 和 post() 方法    第2节:jQuery – AJAX load() 方法    第3节:jQuery Accordion    第4节:jQuery AJAX 方法    第5节:jQuery AJAX 简介    第6节:jQuery Autocomplete    第7节:jQuery css() 方法    第8节:jQuery Callback 方法    第9节:jQuery Cookie 插件    第10节:jQuery HTML / CSS 方法    第11节:jQuery noConflict() 方法    第12节:jQuery Growl 插件(消息提醒)    第13节:jQuery Password Validation(密码验证)    第14节:jQuery Prettydate    第15节:jQuery 遍历 – 祖先    第16节:jQuery 遍历    第17节:jQuery 尺寸    第18节:jQuery 获取并设置 CSS 类    第19节:jQuery 删除元素    第20节:jQuery 获取内容和属性    第21节:jQuery 教程    第22节:jQuery 安装    第23节:jQuery 简介    第24节:jQuery 链    第25节:jQuery 遍历 – 过滤    第26节:jQuery 遍历方法    第27节:jQuery Validate    第28节:jQuery 遍历 – 后代    第29节:jQuery 遍历 – 同胞(siblings)    第30节:jQuery Tooltip    第31节:jQuery 效果 – 停止动画    第32节:jQuery 添加元素    第33节:jQuery 设置内容和属性    第34节:jQuery 效果 – 动画    第35节:jQuery 效果 – 滑动    第36节:jQuery 效果 – 淡入淡出    第37节:jQuery 效果 – 隐藏和显示    第38节:jQuery 事件    第39节:jQuery 选择器    第40节:jQuery 语法    第41节:jQuery 属性    第42节:jQuery 效果方法    第43节:jQuery 事件方法    第44节:jQuery 实例    第45节:JSONP 教程    第46节:jQuery 杂项方法    第47节:jQuery 树型菜单插件(Treeview)