jsonp跨域

JSONP

JSON with Padding其本质是利用了标签具有可跨域的特性,由服务端返回一个预先定义好的Javascript函数的调用,并且将服务器数据以该函数参数的形式传递过来,此方法需要前后端配合完成。

只能以GET方式请求

  • 注意只能够通过get方法

  • 服务端代码


 

    // echo "alert('天气不错哦')";

    $callBack = $_GET['callback'];



    $arr = array(

        'name' =>'西兰花' ,

        'color' =>'red' 

         );

    echo $callBack."(".json_encode($arr).")";

?>
  • 前端代码:注意,域名不同

    • 核心是 通过script标签的src属性提交get请求







    

    Document

    

    





    

区域1的页面_jsonP演示

jQuery 的$.ajax()

方法当中集成了JSONP的实现,可以非常方便的实现跨域数据的访问。

dataType: 'jsonp' 设置dataType值为jsonp即开启跨域访问

jsonp 可以指定服务端接收的参数的“key”值,默认为callback

jsonpCallback 可以指定相应的回调函数,默认自动生成

  • 示例代码






Document







流程图:


你可能感兴趣的:(jsonp跨域)