Ajax数据的获取需要遵循同源的策略,也就是需要使用相同的域名、端口、协议,所以要想获取不同域的数据就存在问题。因此基于此问题就衍生出了很多解决Ajax跨域的技术,譬如:服务器代理、img、iframe等等技术。 JSONP是JSON with padding的缩写。
2.JSONP的原理
在本地创建一个回调函数,然后在跨域段调用该回调函数,并将JSON数据作为参数传递给回调函数,完成回调。
3.案例解析
a.html需要跨域解决问题
<script> function aa(data){ alert(data.message); } function loadScript(url){ var script = document.createElement('script'); script.setAttribute('type','text/javascript'); script.src = url; document.body.appendChild(script); } window.onload = function(){ var a = document.getELementById('aaa'); a.onclick = function(){ var url = "http://b.html?callback=aa"; loadScript(url); } } </script>
在b页面,执行回调函数,并将json数据作为参数填充到回调函数中,完成回调函数
1.获取回调函数 2.然后执行回调函数 var data = { "message" :"sucess" } callback(data);
4.Ajax技术与JSONP技术的差别
1.两种技术“看起来”很像,目的一样,都是请求一个URL,然后对从服务器端获取的数据进行处理;
2.Ajax技术的核心是通过XMLHttpRequest对象来获取数据,而JSONP通过动态创建script,然后在服务器端执行回调函数完成数据的获取,采用的是两种完全不同的技术;
3.区别不在于是否跨域,jsonp也可以解决同域的数据获取。
5.解决跨域的其他方法
iframe、服务器代理、图片等等
相关推荐
主要介绍了JSONP原理及简单实现的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
交接jsonp,轻松实现跨域方法的调用,很值得学习的东西
JSONP原理以及示例.rar
跨域_jsonp_原理,了解json的原理,等于我们掌握json的技术有帮助
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的...
jsonp的原理 jsonp的使用,使用jsonp解决js跨域问题!
1.json与jsonp的引入 在ajax中 JSON用来解决数据交换问题,而JSONP来实现跨域。 备注:跨域也可以通过服务器端代理来解决; 理解:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方...
jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案。下面让我们了解一下是如何使用的吧。
主要介绍了跨域解决方案Jsonp原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了JSONP原理及应用实例详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了浅析JSONP技术原理及实现 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
下面小编就为大家推荐一篇基于JSONP原理解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
JSONP跨域GET请求是一个常用的解决方案,下面我们来看一下JSONP跨域是如何实现的,并且探讨下JSONP跨域的原理
针对跨域问题,本文主要给大家详细分析一下jsonp的原理,希望能够给你提供到帮助。 详细分析jsonp的原理和实现方式 一:跨域问题。 二,跨域产生的原因 Js是不能跨域请求。出于安全考虑,js设计时不可以跨域。 什么...
JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。