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

相關文章
相關標籤/搜索