zoukankan      html  css  js  c++  java
  • jsonp 代码优化

    改进以后

      

    <script type="text/javascript">
            // 获取按钮
            var btn1 = document.getElementById('btn1');
            var btn2 = document.getElementById('btn2');
            // 为按钮添加点击事件
            btn1.onclick = function () {
                jsonp({
                    // 请求地址
                    url: 'http://localhost:3001/better',
                    data: {
                        name: 'lisi',
                        age: 30
                    },
                    success: function (data) {
                        console.log(123)
                        console.log(data)
                    }
                })
            }

            btn2.onclick = function () {
                jsonp({
                    // 请求地址
                    url: 'http://localhost:3001/better',
                    success: function (data) {
                        console.log(456789)
                        console.log(data)
                    }
                })
            }

            function jsonp (options) {
                // 动态创建script标签
                var script = document.createElement('script');
                // 拼接字符串的变量
                var params = '';

                for (var attr in options.data) {
                    params += '&' + attr + '=' + options.data[attr];
                }
                
                // myJsonp0124741
                var fnName = 'myJsonp' + Math.random().toString().replace('.', '');
                // 它已经不是一个全局函数了
                // 我们要想办法将它变成全局函数
                window[fnName] = options.success;
                // 为script标签添加src属性
                script.src = options.url + '?callback=' + fnName + params;
                // 将script标签追加到页面中
                document.body.appendChild(script);
                // 为script标签添加onload事件
                script.onload = function () {
                    document.body.removeChild(script);
                }
            }

            
        </script>
  • 相关阅读:
    一些程序员必备的英语词汇及释义
    ETL工具Talend最佳实践
    spark-submit使用yarn cluster模式时如何获取applicationId?
    On-heap vs Off-heap 堆内内存与堆外内存
    【Kail 学习笔记】kali信息搜集工具之IKE-Scan
    【Kail 学习笔记】kali信息搜集工具之Sparta(斯巴达)
    渗透常用命令
    渗透测试中常用WINDOWS命令
    Jvoke:Java环境下调用系统命令
    SpringCloud以及Nacos服务注册IP选择问题
  • 原文地址:https://www.cnblogs.com/ericblog1992/p/13132017.html
Copyright © 2011-2022 走看看