Web2.0时代大家都用ajax,ajax取数据前一段时间大家都用xml,后来大家发现了一种更好的,更有效,也更小的表达数据的方式这就是jason,jason是利用javascript的特性来表示变量值的方法,例如:
var site = {name:'宝宝孕历',url:'http://www.baobaoyunli.com/'};
这个相信多数人都知道jason,但是什么是jsonp呢?
出现jsonp也和ajax有关系,因为ajax有一个缺陷(这个缺陷是为用户电脑安全考虑的),就是不能跨域取数据,例如我在
www.baobaoyunli.com不可以用ajax请求abc.baobaoyunli.com的数据,如果请求浏览器会报错。怎么办这是个问题,于是jsonp应运而生了,换句话说,jsonp是为了解决ajax不能跨域的问题才出现的,jsonp可以解决浏览器跨域问题。
jsonp如何解决跨域问题呢?通过欺骗浏览器,让浏览器通过不验证是否在同一个域的方式,获得jason数据,如何做,其实很简单,请看示例:
在需要跨域调用ajax的页面上有如下代码
function callAfterGetData(){
//do something
}
在abc.baobaoyunli.com/data.jason中输出的内容示例:
var site = {name:'宝宝孕历',url:'http://www.baobaoyunli.com/'};
callAterGetData();
data.jason中的内容分两部分,一部分是ajax要取的jason内容,另外一部分是取完数据之后的处理方法调用。
这样就从另外一个方面解决了ajax不能跨域的问题。但是这种方法是有一定缺陷的,用过ajax的人都知道,在ajax请求时readyState改变会引发事件,告诉我们ajax调用成功了还是出错了。但是用jsonp这个方法就没有这种状态,如果出错了没办法发出出错通知。
分享到:
相关推荐
1. **JSONP(JSON with Padding)**:JSONP是一种早期的跨域解决方案,它依赖于`<script>`标签不受同源策略限制的特点。通过动态创建`<script>`标签,设置其`src`属性为提供服务的服务器接口,并由服务器返回一个包裹...
总的来说,JSONP是Ajax跨域请求的一种实用解决方案,尤其适用于只支持GET请求且不涉及复杂交互的场景。但是,它也有一些局限性,比如不支持POST请求、无法控制HTTP头部、无错误处理机制等。因此,在现代Web开发中,...
JSONP是一种早期的跨域解决方案,它是通过动态创建`<script>`标签来加载数据的。因为`<script>`标签不受同源策略限制,可以通过`src`属性指向提供JSON数据的外部服务。服务端返回的数据是一个JavaScript函数调用,...
### JSONP实现Ajax跨域访问 #### 一、引言 JSONP(JSON with Padding)是一种用于解决跨域数据访问的技术。由于同源策略(Same-Origin Policy)的存在,JavaScript/Ajax只能请求同源的资源,这给需要跨域访问数据...
本文将深入探讨JavaScript和Ajax跨域的原理,以及常用的解决方案。 首先,理解同源策略是解决跨域问题的基础。同源策略是浏览器为了保障用户安全而设定的一种机制,它规定了只有同源(即协议、域名和端口都相同)的...
AJAX+CORS适用于现代浏览器,提供了更灵活、安全的跨域解决方案,但需要服务器端的支持。而JSONP则适用于所有支持`<script>`标签的浏览器,包括一些较旧版本,但只支持GET请求,且安全性较低,因为服务器可以注入...
解决方案: 1.jsonp 在远程服务器上设法动态的把数据装进js格式的文本代码段中,供客户端调用和进一步处理;在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;...
本文将深入探讨两种主要的跨域解决方案:CORS(Cross-Origin Resource Sharing)和JSONP(JSON with Padding)。 ### CORS方案 CORS是一种现代浏览器支持的跨域策略,允许服务器声明哪些源可以访问其资源。服务器...
【AJAX跨域解决办法】 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下更新部分网页的技术。然而,由于浏览器的同源策略限制,AJAX请求通常只能发送到与当前页面同一源的...
这是目前最常用的跨域解决方案之一,主要通过在服务端添加CORS(Cross-Origin Resource Sharing)配置来实现。 - **服务端配置示例**(Java): ```java @Configuration public class CorsConfig implements ...
#### 一、什么是Ajax跨域 **原理:** Ajax跨域问题的核心在于浏览器的“同源策略”。同源策略是一种安全措施,用于限制一个域名下的文档或脚本如何与另一个来源的资源进行交互。简单来说,同源策略要求发起请求的...
总结,JSONP是一种简单且广泛使用的跨域解决方案,尤其适用于那些不支持CORS的旧版本浏览器。然而,考虑到安全性和灵活性,CORS在现代Web开发中已成为更推荐的选择。理解JSONP的工作原理和使用方法对于任何Web开发者...
JQuery的跨域解决方案主要依赖于JSONP(JSON with Padding)技术。JSONP是一种绕过同源策略的方式,它利用HTML中的`<script>`标签没有同源策略限制的特点。当jQuery使用`dataType: 'jsonp'`时,它实际上是在做以下几...
**Ajax跨域请求问题与jQuery JSONP解析** 在Web开发中,Ajax技术被广泛用于实现页面的异步更新,但浏览器的同源策略(Same-Origin ...在实际开发中,开发者应根据项目需求和浏览器兼容性选择合适的跨域解决方案。
通过上述介绍可以看出,JSONP是一种简单而有效的跨域解决方案,尤其适用于只支持GET请求的场景。然而,JSONP也有一些局限性,比如不支持POST请求,且安全性相对较低。随着技术的发展,现在更多地推荐使用CORS(Cross...
### Ajax跨域访问解决方案 #### 一、引言 随着Web技术的发展,越来越多的应用需要从不同的源获取数据。然而,由于浏览器的安全限制,Ajax请求默认只能向同源站点发起请求,这种安全机制被称为“同源策略”。同源...
虽然JSONP存在一些限制和安全隐患,但在许多场景下,它仍然是一个实用且有效的解决方案。随着技术的发展,CORS等新的跨域策略也在逐步替代JSONP,但理解JSONP的工作原理对于Web开发者来说仍然非常重要。
1、地址...演示跨域问题以及跨子域名解决方法 2、地址http://a.test.com:8888/testAjaxCross/public/jsonp.do 演示jsonp解决跨域问题的三种方案jsonp、$getJSON、$ajax等
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许...虽然有一些限制,但在许多场景下,JSONP仍然是一个实用的跨域解决方案。