• 跨域(jsonp)方法


    使用JSON的优点在于:
    比XML轻了很多,没有那么多冗余的东西。
    JSON也是具有很好的可读性的,但是通常返回的都是压缩过后的。不像XML这样的浏览器可以直接显示,浏览器对于JSON的格式化的显示就需要借助一些插件了。
    在JavaScript中处理JSON很简单。
    其他语言例如PHP对于JSON的支持也不错。
    JSON也有一些劣势:
    JSON在服务端语言的支持不像XML那么广泛,不过JSON.org上提供很多语言的库。
    如果你使用eval()来解析的话,会容易出现安全问题。
    尽管如此,JSON的优点还是很明显的。他是Ajax数据交互的很理想的数据格式

    写法一:
    function jsonpCallback(jsonpdata){
      for(var i in jsonpdata){
        console.log(jsonpdata[i]);
      }
    }
    var JSONP = document.createElement('script');
    JSONP.type = 'text/javascript';
    JSONP.src = 'http://***/**.php?callback=jsonpCallback';


    写法二:

    <script type="text/javascript">
      function jsonpCallback(jsonpdata){
        for(var i in jsonpdata){
          console.log(jsonpdata[i]);
        }
      }
    </script>
    <script type="text/javascript" src=:"http://***/**.php?callback=jsonpCallback"></script>

    写法三:

    //jquery跨域

    $.getJSON("http://***/**.php?callback=?",function(jsondata){
      for(var i in jsondata){
        console.log(jsondata[i]);
      }
    })

    写法四:

    $.ajax({
      url:'http://***/**.php?callback',
      dataType:'jsonp',
      data:'',
      jsonp:'callback',
      success:function(jsondata){
        for(var i in jsondata){
          console.log(jsondata[i])
        }
      },
      timeout:1000
    })

    写法五:

    $.get('http://crossdomain.com/services.php?callback=?',
      {name: encodeURIComponent('tester')},
      function (json) {
        for(var i in json)
          console.log(i+":"+json[i]);
        }, 'jsonp');

    <?php
    服务端返回JSON数据
    $arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
    $result=json_encode($arr);
    echo $_GET['callback'].'("Hello,World!")';
    echo $_GET['callback']."($result)";
    动态执行回调函数
    $callback=$_GET['callback'];
    echo $callback."($result)";

  • 相关阅读:
    Visual Studio for Mac 2017 初体验
    利用栈求表达式的值
    Problem C: ChongQueue
    Problem G: ZL's Prob.2
    Problem F: ZL's Prob.1
    Problem B: ChongBit
    HDU 5156
    SHUOJ 1771
    OpenGL学习整理------着色器
    OpenGL ES着色器语言----------------储存修饰符
  • 原文地址:https://www.cnblogs.com/eye-color/p/6863706.html
Copyright © 2020-2023  润新知