zoukankan      html  css  js  c++  java
  • JSONP

    JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。

     1. $.getJSON
      <script>
      $(document).ready(function(){
      $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
      function(data){
      $.each(data.items, function(i,item){
      $("<img/>").attr("src", item.media.m).appendTo("#images");
      if ( i == 3 ) return false;
      });
      });
      });
      </script>
      jsoncallback=?,其中?会自动替换为function(data)函数。
      2. $.ajax
      $.ajax({
      dataType: 'jsonp',
      data: 'id=10',
      jsonp: 'jsonp_callback',
      url: 'http://www.yiwuku.com/getdata',
      success: function () {
      // do stuff
      },
      });
    

    如何使用JSONP

    1. 在客户端调用提供JSONP支持的URL Service,获取JSONP格式数据。
    比如客户想访问http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction
    假设客户期望返回JSON数据:["customername1","customername2"]
    那么真正返回到客户端的Script Tags: callbackFunction([“customername1","customername2"])
    可能的调用方式:
    <script type="text/javascript" src="http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction" />
    2. 在客户端写callbackFunction函数的实现
    <script type="text/javascript">
    function onCustomerLoaded(result, methodName)
    {
    var html = '<ul>';
    for(var i = 0; i < result.length; i++)
    {
    html += '<li>' + result + '</li>';
    }
    html += '</ul>';
    document.getElementById('divCustomers').innerHTML = html;
    }
    </script>

    http://baike.baidu.com/view/2131174.htm#sub2131174

  • 相关阅读:
    297. Serialize and Deserialize Binary Tree
    331. Verify Preorder Serialization of a Binary Tree
    332. Reconstruct Itinerary
    329. Longest Increasing Path in a Matrix
    319. Bulb Switcher
    292. Nim Game
    299. Bulls and Cows
    Ice Cream Tower Gym
    B
    C
  • 原文地址:https://www.cnblogs.com/wucg/p/2019880.html
Copyright © 2011-2022 走看看