手动实现JSONP

        function JSONP(url,callback){
          var id = "_" + "Query" + (new Date()).getTime();

          window[id] = function (result){
            if(callback){
              callback(result)
            }

            // 移除临时script标签和id
            var getId = document.getElementById(id)
            getId.parentNode.removeChild(getId);
            window[getId] = null; // 调用函数后销毁
          }

          url = url.replace("callback=?", "callback=" + id);

          var script = document.createElement('script'); //创建script标签并执行window[id]函数
          script.setAttribute('id',id)
          script.setAttribute('src',url)
          script.setAttribute('type','text/javascript')
          document.body.appendChild(script)
        }

调用

        function JSONPFunction(){

          JSONP("http://localhost:23133/api/default?callback=?",

              function(jsonData){          //将返回的数据jsonData作为调用函数的参数

              })
        }

你可能感兴趣的:(手动实现JSONP)