jsonp跨域

た 入场券 2022-07-12 02:26 402阅读 0赞

jsonp跨域

Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>);

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4. <title>Untitled Page</title>
  5. <script type="text/javascript" src=jquery.min.js"></script>
  6. <script type="text/javascript"> jQuery(document).ready(function(){ $.ajax({ type: "get", async: false, url: "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998", dataType: "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function(json){ alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。'); }, error: function(){ alert('fail'); } }); }); </script>
  7. </head>
  8. <body>
  9. </body>
  10. </html>

总结

  1. ajax和jsonp这两种技术在调用方式上“看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jquery和ext等框架都把jsonp作为ajax的一种形式进行了封装;
  2. 但ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。
  3. 所以说,其实ajax与jsonp的区别不在于是否跨域,ajax通过服务端代理一样可以实现跨域,jsonp本身也不排斥同域的数据的获取。
  4. 还有就是,jsonp是一种方式或者说非强制性协议,如同ajax一样,它也不一定非要用json格式来传递数据,如果你愿意,字符串都行,只不过这样不利于用jsonp提供公开服务。

    总而言之,jsonp不是ajax的一个特例,哪怕jquery等巨头把jsonp封装进了ajax,也不能改变这一点!

发表评论

表情:
评论列表 (有 0 条评论,402人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jsonp

    首先我们来说说什么是跨域       跨域:是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。但

    相关 jsonp

    我是做的一个跨站显示信息!! 鄙人文化不高,代码不严谨,仅供参考! 题目:用户在a站访问过的商品足迹可以在登录b站之后查看足迹! 首先创建两个域名www.a.com

    相关 jsonp

    jsonp跨域 Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src这个属性的标签都拥有跨域的能力,比如`<script>、<img>、<

    相关 JSONP和CORS

    什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名、协议、端口均相同。 浏览器

    相关 jsonp

    域指的就是域名。 域名对应的是一个IP地址。 域名与IP地址的对应关系存储在域名服务器上。(DNS)   所谓跨域     1.就是跨域名,跨端口,跨协议