jsonp对付同源策略

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

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

  

  JSONP  json with paddingcss

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

  

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

  不用其余标签由于   script标签请求来的内容都会被当作js代码,json 是源生js支持的数据类型,而且json 能够表达复杂的数据,因此天生的就是有天赋ajax

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

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封装到了一块儿,其实跨域的仍是  jsonpapp

相关文章
相关标签/搜索