• jsonp的使用方法和原理简介(结合php)


     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>Document</title>
     8 </head>
     9 <body>
    10     
    11 </body>
    12 </html>
    13 <script>
    14    /*
    15         jsonp
    16             jsonp是一种非正式传输协议,用于解决跨域问题
    17 
    18 
    19         jsonp解决跨域的原理
    20             利用src不受同源策略的影响。
    21 
    22         jsonp的实现:
    23             动态创建script标签   把事先写好的全局函数传到服务端。
    24 
    25 
    26         jsonp的实现流程:  (jsonp接口必须是get请求)
    27             a:  动态创建script标签
    28             b:  把接口地址给script的src属性
    29             c:  把所需要往服务端传递的参数拼接在src地址里面
    30             d:  在全局创建一个函数   用callback=函数名的形式 放在地址里面
    31             e:  把标签放在body里面
    32             f:  数据请求完毕把script标签移除
    33     */
    34     function handle(data){
    35         console.log(data);
    36     }
    37     document.onclick = function(){
    38         var script = document.createElement('script');
    39         script.src = 'http://localhost/day24/day24_2/jsonp.php?callback=handle';
    40         document.body.appendChild(script);
    41         script.onload = function(){
    42             this.remove();
    43         }
    44     }
    45 </script>
    以下是php文件的内容
     1 <?php
     2     $fn = $_GET['callback']; //jsonp方法的传输方式必须是GET
     3 
     4     $arr = array(
     5         'name' => 'wangshuai',
     6         'age' => '22'
     7     );
     8     //为了不让该函数执行,必须拼接成字符串传回
     9     echo $fn.'('.json_encode($arr).')';
    10 ?>
    知识在于点滴积累
  • 相关阅读:
    firefox 使用过程
    如何在Ubuntu 18.04中安装VMware Workstation Player
    pycharm 设置
    matplotlib函数理解
    Linux:从入门到放弃
    Pycharm 项目无法导入自己写的模块(问题记录贴)
    代数之管见(孟道骥)第二讲:漫谈数学学习
    numpy学习总结(重点讲解索引方式)
    ubuntu中vi下删除键和上下左右键的异常解决
    Docker使用问题记录贴
  • 原文地址:https://www.cnblogs.com/XieYFwin/p/10850125.html
Copyright © 2020-2023  润新知