jsonp对付同源策略

     当 协议不同或者域名/ip不同或者端口号不同 ,  都不算是同源

  这时候 源生的ajax 就不能进行数据请求了

  

  JSONP  json with padding

  在平时的开发中也发现了  ,当我们请求  js, css,图片 等资源的时候  无论是不是本地,国外的都行,哪的都行。

  

  用script标签来请求 跨域的资源就是  jsonp

  不用其他标签因为   script标签请求来的内容都会被当做js代码,json 是源生js支持的数据类型,并且json 可以表达复杂的数据,所以天生的就是有天赋

jsonp.js    我们就在本地  用fille直接打开呆这段js 的html

function jsonpCallback (result) {
      console.log(result);
    }
    var JSONP = document.createElement('script');
    JSONP.type = 'text/javascript';
    JSONP.src = "http://localhost/ajaxphp/result.php?callback=jsonpCallback";
    document.getElementsByTagName('head')[0].appendChild(JSONP);
//? name&value    这个url就是模拟 get请求 目标php文件

result.php  运行本地的服务器  服务器上的 php文件

<?php
  $arr = Array('a'=>1,'b'=>2,'c'=>3);
  $result = json_encode($arr);
  $callback = $_GET['callback'];
  echo $callback."($result)";
  ?>

 

上面这两个文件   是跨域的  但是仍然可以顺利的访问

 

jQuery中的  ajax 是封装过的   就是将正常的ajax和jsonp封装到了一起,其实跨域的还是  jsonp

 

转载于:https://www.cnblogs.com/96weibin/p/8810022.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值