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这个方法就没有这种状态,如果出错了没办法发出出错通知。
分享到:
相关推荐
js跨域解决方案
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考
这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要...
解决方案: 1.jsonp 在远程服务器上设法动态的把数据装进js格式的文本代码段中,供客户端调用和进一步处理;在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;...
关于跨域,有N种类型,本文只专注于ajax...什么是ajax跨域 o原理 o表现(整理了一些遇到的问题以及解决方案) 如何解决ajax跨域 oJSONP方式 oCORS方式 o代理请求方式 如何分析ajax跨域 ohttp抓包的分析 o一些示例
PHP下ajax跨域的解决方案之jsonp实例分析.docx
Ajax跨域访问解决方案,访问第三方网站的资源
1、地址...演示跨域问题以及跨子域名解决方法 2、地址http://a.test.com:8888/testAjaxCross/public/jsonp.do 演示jsonp解决跨域问题的三种方案jsonp、$getJSON、$ajax等
其它的还有Cookie跨域iframe跨域,LocalStorage跨域等这里不做介绍),内容大概如下:什么是ajax跨域原理表现(整理了一些遇到的问题以及解决方案)如何解决ajax跨域JSONP方式CORS方式代理请求方式如何分析ajax跨域http...
本文实例讲述了PHP下ajax跨域的解决方案之jsonp。分享给大家供大家参考,具体如下: 首先要说明一下json和jsonp的区别? json是一种基于文本的数据交换方式,或者叫做描述数据的一种格式。 var person = { "name":...
本文主要讲解了如何去解决AJAX跨域的问题,从跨域的简单原理到JONP实现模式详细的讲解整个解决方案,最后利用jQuery可以很方便的实现JSONP来进行跨域访问。
这里对跨域做个简单介绍以及提供几种解决办法。 由于浏览器实现的同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,所以AJAX是不允许跨域的。这里提供自己常用的三种方法: 1、jsonp...
了解了jsonp之后,大家应该也都明白了,jsonp主要就是用来实现跨域的获取数据,今天我们就来详细探讨下如何在实际中应用jsonp实现跨域
关于AJAX跨域。分析了原因及解决的方案,从各个角度阐述问题和解决问题。
直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery...
基本的方法入手,从jsonp、jquery的ajax不同的角度去处理跨域的问题
dataType:”json”, } 不能用jsonp 因为jsonp发送数据 type 为 ... 您可能感兴趣的文章:跨域请求之jQuery的ajax jsonp的使用解惑AJAX跨域请求json数据的实现方法jQuery.ajax 跨域请求webapi设置headers的解决方案JQuer
3、解决方案: (1) JSONP:只支持GET方式 (2) CROS:跨域资源共享 以下为CROS解决方案: a.在WebService接口加上响应头信息: b.在web.config文件中加上相关配置节信息: 运用a或者b的解决方案后,浏览器头...