Jsonp的原理以及简单实现
来源:互联网 发布:北京专业关键词优化 编辑:程序博客网 时间:2024/05/16 09:15
功能
Jsonp是json的一种使用模式,用来解决主流浏览器的跨域数据访问的问题.因为同源策略,页面是无法直接与其他不同源的页面沟通的.利用Script元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
同源:指协议,域名,端口相同.当浏览器的页面执行一个脚本时会检查这个脚本是属于哪个页面的,只有和这个页面同源的脚本才会执行,否则控制台会报错.
原理
在客户端用Script标签,获取Jsonp格式的数据(用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析),同时执行一个jsonp的callback函数,要执行这个callback函数,就要在客户端先定义这个callback函数。
简单实现
这是我找到的一个比较简单的实现:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Top Customers with Callback</title></head><body> <div id="divCustomers"> </div> <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> <script type="text/javascript" src="http://www.yiwuku.com/myService.aspx?jsonp=onCustomerLoaded"></script></body></html>
比如客户想访问http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction
假设客户期望返回JSON数据:[“customername1”,”customername2”]
那么真正返回到客户端的Script Tags: callbackFunction([“customername1”,”customername2”])
阅读全文
0 0
- Jsonp的原理以及简单实现
- JSONP原理及最简单的JSONP实现
- JSONP原理及最简单的JSONP实现
- jsonp的简单原理
- JSONP以及jQuery对JSONP的实现
- jsonp 的原理与实现
- JSONP原理及简单实现 zhaokuo719
- 关于JSON的概念以及JSONP的来历和实现以及跨域原理
- jsonp实现跨越js调用的原理
- JSONP原理与实现
- Jsonp原理及实现
- Jsonp原理及实现
- JSONP原理及实现
- JSONP原理及实现
- jsonp原理实现
- cors和jsonp的简单实现
- jsonp跨域的简单实现
- jsonp跨域的简单实现
- opencv把一个彩色图像加载成灰度图像
- WEB_02_CSS_第三讲
- Ubuntu安装Qt4教程(命令行方式apt-get install)
- HBase分析索引
- Pycharm基本使用
- Jsonp的原理以及简单实现
- System.Serializable讲解
- Win32图形设计框架基础知识
- HBase分析之Put操作
- Handler消息机制(native层)
- VirtualBox + CentOS 使用 NAT + Host-Only 方式联网
- C语言中字节对齐问题
- LinuxStudyNote(25)-Linux常用命令(4)-文件搜索命令(3)which、whereis命令搜索、grep文件内容查找
- 142. Linked List Cycle II。