zoukankan      html  css  js  c++  java
  • JS之AJAXJSONP

    JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,常用于服务器与客户端跨域通信,由于其良好的兼容性,在Web服务中非常流行

    基础

    JSONP的基本思想是向网页中动态的添加一个<script>元素,并设置script元素的src属性为接口地址,利用script元素天生的跨域功能实现跨域请求。当通过script元素调用数据时,响应内容必须用JavaScript函数名包裹起来,这个函数名是可以自定义的,它取决于src地址的callback参数值(callback参数名也是可以自定义的,但通常默认设置为callback)

    http://127.0.0.1:3030/api/test?callback=info
    

    JSONP由回调函数和数据两部分组成。回调函数就是响应数据时应该在页面中调用的函数,回调函数的名称是在请求中指定的,而数据就是传入回调函数中的JSON数据

    info({name: "wmui", age: 18})
    

    JSONP示例

    前端示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
      
      <title>Document</title>
    </head>
    <body>
      <button id="btn">btn</button>
      <script>
      function loadScript(url){
        if(!loadScript.mark) {
           loadScript.mark = 'load';
           var script = document.createElement("script");
           script.type = "text/javascript";
           script.src = url;
           document.body.appendChild(script);
        }
      }
      function info(response) {
        console.log(response)
      }
    
      btn.onclick = function() {
        loadScript('http://127.0.0.1:3040/api/test?callback=info')
      }
      </script>
    </body>
    </html>
    

    后端示例

    app.get('/api/test', function(req, res) {
      res.jsonp({name: "wmui", age: 18});
    })
    

    结果

    三句话解释jsonp:

    1. 前端动态创建带有callback函数的script
    2. 后端返回callback函数包裹的数据
    3. 前端调用这个函数拿到数据
    优秀文章首发于聚享小站,欢迎关注!
  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    Codeforces Round #571 (Div. 2)-D. Vus the Cossack and Numbers
  • 原文地址:https://www.cnblogs.com/yesyes/p/15352696.html
Copyright © 2011-2022 走看看