zoukankan      html  css  js  c++  java
  • Jsonp实现

       //5、jsonp封装
        function jsonpPakeage(obj) {
            //写入url地址中的函数名称,动态创建
            var callbackName = "fn"+Math.random().toString().split(".")[1];
            
            //创建一个script标签
            var scriptObj = document.createElement("script");
            
            obj.parames = obj.parames || '';
            if (typeof obj.parames == 'object') {
                var arr = new Array();
                for (var key in obj.parames) {
                    arr.push(key + '=' + obj.parames[key])
                }
                obj.parames = arr.join('&');
            }
            //设置标签的请求路径
            //像这样:http://localhost:3000/api?callback=fn153498520409635392&id=1
            scriptObj.src = obj.url + '?' + 'callback=' + callbackName + '&' + obj.parames;
            //将创建好的带请求的script标签添加到html的body中
            document.getElementsByTagName('head')[0].appendChild(scriptObj);
    
            //这里必须这样写window[callbackName];
            //如果写window.callbackName会报错没有定义
            //var one = true;
            window[callbackName] = function (res) {
                //if(one){
                    obj.success(res);
                    //删除的时候可以这样写
                    //由于请求一次会创建一个script标签和一个函数,所以每次获取到结果后就删除
                    delete window.callbackName;
                    document.getElementsByTagName('head')[0].removeChild(scriptObj);
                    // one = false
                //}
            }
        }
        //调用
        jsonpPakeage({
            url:"http://localhost:8080/js/index.js",
            parames:"",
            success:function(res){
                console.log(res)
            }
        })
  • 相关阅读:
    protobuf lib库的使用
    protobuf的下载、编译和使用
    使用python和pygame绘制繁花曲线
    经典方块游戏-俄罗斯方块
    经典方块游戏-贪吃蛇
    经典方块游戏-基础
    经典方块游戏一
    Python脚本管理
    SublimeText3设置显示空格及Tab显示为4个空格
    域名解析记录类型
  • 原文地址:https://www.cnblogs.com/ckAng/p/12738668.html
Copyright © 2011-2022 走看看