jsonp

JSONP
前面的话
  JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。本文将详细介绍JSONP

基础
  JSONP的基本思想是,网页通过添加一个

当通过

[1, 2, {“buckle”: “my shoe”}]
  JSONP看起来与JSON差不多,只不过是被包含在函数调用中的JSON,它会发送这样一个包裹后的JSON响应:

handleResponse([l, 2, {“buckle”: “my shoe”}])
  包裹后的响应会成为

在实践中,支持JSONP的服务不会强制指定客户端必须实现的回调函数名称,比如handleResponse。相反,它们使用査询参数的值,允许客户端指定一个函数名,然后使用函数名去填充响应。许多支持JSONP的服务都能分辨出这个参数名。另一个常见的参数名称是callback,为了让使用到的服务支持类似特殊的需求,就需要在代码上做一些修改了

JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据

http://freegeoip.net/json/?callback=handleResponse
  这个URL是在请求一个JSONP地理定位服务。通过査询字符串来指定JSONP服务的回调参数是很常见的,就像上面的URL所示,这里指定的回调函数的名字叫handleResponse()

JSONP是通过动态

复制代码
function handleResponse(response){
alert ("You’re at IP address " + response.ip + ", which is in " + response.city + ", "+ response.region_name);
}
var script = document.createElement(“script”);
script.src = “http://freegeoip.net/json/?callback=handLeResponse”; document.body.insertBefore(script, document.body.firstChild);
复制代码
  JSONP之所以在开发人员中极为流行,主要原因是它非常简单易用,老式浏览器全部支持,服务器改造非常小。与图像Ping相比,它的优点在于能够直接访问响应文本,支持在浏览器与服务器之间双向通信

使用

不过,JSONP也有两点不足:首先,JSONP是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,而此时除了完全放弃JSONP调用之外,没有办法追究。因此在使用不是自己运维的Web服务时,一定得保证它安全可靠;其次,要确定JSONP请求是否失败并不容易。虽然HTML5给

简易示例
【前端】

复制代码
获取信息
loading

复制代码 【后端】

复制代码

<?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $arr = [1,2,3,4,5]; echo test_input($_GET['callback']) ."(" .json_encode($arr) .");"; ?>

复制代码

百度搜索框
  百度搜索框就是使用了JSONP的技术,在百度搜索的URL中,有用的查询如下

https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=123&&cb=a
  结果为:

a({q:“123”,p:false,s:[“12306”,“12306铁路客户服务中心”,“12308汽车订票官网”,“12306火车票网上订票官网”,“12333”,“12315”,“12345”,“12333社保查询网”,“123网址之家”,“12366”]});
  所以,wd为关键词,cb用来JSONP的函数名。在获取的数据中,s为以关键词开始的数据组成的数据

百度搜索的关键URL如下

https://www.baidu.com/s?wd=a
  wd为关键词,当wd=a时,将打开关键词为a的网页

复制代码

    复制代码

    最后
      如果在jQuery中使用jsonp技术,需要使用ajax()方法,将datatype设置为’jsonp’,将jsonp设置为函数名,如’callback’

    以上JSONP
    前面的话
      JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。本文将详细介绍JSONP

    基础
      JSONP的基本思想是,网页通过添加一个

    当通过

    [1, 2, {“buckle”: “my shoe”}]
      JSONP看起来与JSON差不多,只不过是被包含在函数调用中的JSON,它会发送这样一个包裹后的JSON响应:

    handleResponse([l, 2, {“buckle”: “my shoe”}])
      包裹后的响应会成为

    在实践中,支持JSONP的服务不会强制指定客户端必须实现的回调函数名称,比如handleResponse。相反,它们使用査询参数的值,允许客户端指定一个函数名,然后使用函数名去填充响应。许多支持JSONP的服务都能分辨出这个参数名。另一个常见的参数名称是callback,为了让使用到的服务支持类似特殊的需求,就需要在代码上做一些修改了

    JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据

    http://freegeoip.net/json/?callback=handleResponse
      这个URL是在请求一个JSONP地理定位服务。通过査询字符串来指定JSONP服务的回调参数是很常见的,就像上面的URL所示,这里指定的回调函数的名字叫handleResponse()

    JSONP是通过动态

    复制代码
    function handleResponse(response){
    alert ("You’re at IP address " + response.ip + ", which is in " + response.city + ", "+ response.region_name);
    }
    var script = document.createElement(“script”);
    script.src = “http://freegeoip.net/json/?callback=handLeResponse”; document.body.insertBefore(script, document.body.firstChild);
    复制代码
      JSONP之所以在开发人员中极为流行,主要原因是它非常简单易用,老式浏览器全部支持,服务器改造非常小。与图像Ping相比,它的优点在于能够直接访问响应文本,支持在浏览器与服务器之间双向通信

    使用

    不过,JSONP也有两点不足:首先,JSONP是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,而此时除了完全放弃JSONP调用之外,没有办法追究。因此在使用不是自己运维的Web服务时,一定得保证它安全可靠;其次,要确定JSONP请求是否失败并不容易。虽然HTML5给

    简易示例
    【前端】

    复制代码
    获取信息
    loading

    复制代码 【后端】

    复制代码

    <?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $arr = [1,2,3,4,5]; echo test_input($_GET['callback']) ."(" .json_encode($arr) .");"; ?>

    复制代码

    百度搜索框
      百度搜索框就是使用了JSONP的技术,在百度搜索的URL中,有用的查询如下

    https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=123&&cb=a
      结果为:

    a({q:“123”,p:false,s:[“12306”,“12306铁路客户服务中心”,“12308汽车订票官网”,“12306火车票网上订票官网”,“12333”,“12315”,“12345”,“12333社保查询网”,“123网址之家”,“12366”]});
      所以,wd为关键词,cb用来JSONP的函数名。在获取的数据中,s为以关键词开始的数据组成的数据

    百度搜索的关键URL如下

    https://www.baidu.com/s?wd=a
      wd为关键词,当wd=a时,将打开关键词为a的网页

    复制代码

      复制代码

      最后
        如果在jQuery中使用jsonp技术,需要使用ajax()方法,将datatype设置为’jsonp’,将jsonp设置为函数名,如’callback’

      以上JSONP
      前面的话
        JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。本文将详细介绍JSONP

      基础
        JSONP的基本思想是,网页通过添加一个

      当通过

      [1, 2, {“buckle”: “my shoe”}]
        JSONP看起来与JSON差不多,只不过是被包含在函数调用中的JSON,它会发送这样一个包裹后的JSON响应:

      handleResponse([l, 2, {“buckle”: “my shoe”}])
        包裹后的响应会成为

      在实践中,支持JSONP的服务不会强制指定客户端必须实现的回调函数名称,比如handleResponse。相反,它们使用査询参数的值,允许客户端指定一个函数名,然后使用函数名去填充响应。许多支持JSONP的服务都能分辨出这个参数名。另一个常见的参数名称是callback,为了让使用到的服务支持类似特殊的需求,就需要在代码上做一些修改了

      JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据

      http://freegeoip.net/json/?callback=handleResponse
        这个URL是在请求一个JSONP地理定位服务。通过査询字符串来指定JSONP服务的回调参数是很常见的,就像上面的URL所示,这里指定的回调函数的名字叫handleResponse()

      JSONP是通过动态

      复制代码
      function handleResponse(response){
      alert ("You’re at IP address " + response.ip + ", which is in " + response.city + ", "+ response.region_name);
      }
      var script = document.createElement(“script”);
      script.src = “http://freegeoip.net/json/?callback=handLeResponse”; document.body.insertBefore(script, document.body.firstChild);
      复制代码
        JSONP之所以在开发人员中极为流行,主要原因是它非常简单易用,老式浏览器全部支持,服务器改造非常小。与图像Ping相比,它的优点在于能够直接访问响应文本,支持在浏览器与服务器之间双向通信

      使用

      不过,JSONP也有两点不足:首先,JSONP是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,而此时除了完全放弃JSONP调用之外,没有办法追究。因此在使用不是自己运维的Web服务时,一定得保证它安全可靠;其次,要确定JSONP请求是否失败并不容易。虽然HTML5给

      简易示例
      【前端】

      复制代码
      获取信息
      loading

      复制代码 【后端】

      复制代码

      <?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $arr = [1,2,3,4,5]; echo test_input($_GET['callback']) ."(" .json_encode($arr) .");"; ?>

      复制代码

      百度搜索框
        百度搜索框就是使用了JSONP的技术,在百度搜索的URL中,有用的查询如下

      https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=123&&cb=a
        结果为:

      a({q:“123”,p:false,s:[“12306”,“12306铁路客户服务中心”,“12308汽车订票官网”,“12306火车票网上订票官网”,“12333”,“12315”,“12345”,“12333社保查询网”,“123网址之家”,“12366”]});
        所以,wd为关键词,cb用来JSONP的函数名。在获取的数据中,s为以关键词开始的数据组成的数据

      百度搜索的关键URL如下

      https://www.baidu.com/s?wd=a
        wd为关键词,当wd=a时,将打开关键词为a的网页

      复制代码

        复制代码

        最后
          如果在jQuery中使用jsonp技术,需要使用ajax()方法,将datatype设置为’jsonp’,将jsonp设置为函数名,如’callback’

        以上JSONP
        前面的话
          JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。本文将详细介绍JSONP

        基础
          JSONP的基本思想是,网页通过添加一个

        当通过

        [1, 2, {“buckle”: “my shoe”}]
          JSONP看起来与JSON差不多,只不过是被包含在函数调用中的JSON,它会发送这样一个包裹后的JSON响应:

        handleResponse([l, 2, {“buckle”: “my shoe”}])
          包裹后的响应会成为

        在实践中,支持JSONP的服务不会强制指定客户端必须实现的回调函数名称,比如handleResponse。相反,它们使用査询参数的值,允许客户端指定一个函数名,然后使用函数名去填充响应。许多支持JSONP的服务都能分辨出这个参数名。另一个常见的参数名称是callback,为了让使用到的服务支持类似特殊的需求,就需要在代码上做一些修改了

        JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的JSON数据

        http://freegeoip.net/json/?callback=handleResponse
          这个URL是在请求一个JSONP地理定位服务。通过査询字符串来指定JSONP服务的回调参数是很常见的,就像上面的URL所示,这里指定的回调函数的名字叫handleResponse()

        JSONP是通过动态

        复制代码
        function handleResponse(response){
        alert ("You’re at IP address " + response.ip + ", which is in " + response.city + ", "+ response.region_name);
        }
        var script = document.createElement(“script”);
        script.src = “http://freegeoip.net/json/?callback=handLeResponse”; document.body.insertBefore(script, document.body.firstChild);
        复制代码
          JSONP之所以在开发人员中极为流行,主要原因是它非常简单易用,老式浏览器全部支持,服务器改造非常小。与图像Ping相比,它的优点在于能够直接访问响应文本,支持在浏览器与服务器之间双向通信

        使用

        不过,JSONP也有两点不足:首先,JSONP是从其他域中加载代码执行。如果其他域不安全,很可能会在响应中夹带一些恶意代码,而此时除了完全放弃JSONP调用之外,没有办法追究。因此在使用不是自己运维的Web服务时,一定得保证它安全可靠;其次,要确定JSONP请求是否失败并不容易。虽然HTML5给

        简易示例
        【前端】

        复制代码
        获取信息
        loading

        复制代码 【后端】

        复制代码

        <?php function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $arr = [1,2,3,4,5]; echo test_input($_GET['callback']) ."(" .json_encode($arr) .");"; ?>

        复制代码

        百度搜索框
          百度搜索框就是使用了JSONP的技术,在百度搜索的URL中,有用的查询如下

        https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=123&&cb=a
          结果为:

        a({q:“123”,p:false,s:[“12306”,“12306铁路客户服务中心”,“12308汽车订票官网”,“12306火车票网上订票官网”,“12333”,“12315”,“12345”,“12333社保查询网”,“123网址之家”,“12366”]});
          所以,wd为关键词,cb用来JSONP的函数名。在获取的数据中,s为以关键词开始的数据组成的数据

        百度搜索的关键URL如下

        https://www.baidu.com/s?wd=a
          wd为关键词,当wd=a时,将打开关键词为a的网页

        复制代码

          复制代码

          最后
            如果在jQuery中使用jsonp技术,需要使用ajax()方法,将datatype设置为’jsonp’,将jsonp设置为函数名,如’callback’

          以上

          • 0
            点赞
          • 0
            收藏
            觉得还不错? 一键收藏
          • 0
            评论

          “相关推荐”对你有帮助么?

          • 非常没帮助
          • 没帮助
          • 一般
          • 有帮助
          • 非常有帮助
          提交
          评论
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

          当前余额3.43前往充值 >
          需支付:10.00
          成就一亿技术人!
          领取后你会自动成为博主和红包主的粉丝 规则
          hope_wisdom
          发出的红包
          实付
          使用余额支付
          点击重新获取
          扫码支付
          钱包余额 0

          抵扣说明:

          1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
          2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

          余额充值