• N久前写的一个JSONP请求方法


    function getJSON(url, params, callback, charset){    
        
    var w = window,
            query 
    = url.indexOf("?"== -1 ? "?" : "&",
            head,
            callback 
    = isFunction(params) ? params : callback,
            charset 
    = charset || "utf-8"
        
    function getTimeVer(){
            
    return new Date().getTime();
        }
        
        
    function isFunction(obj){
            
    return Object.prototype.toString.call(obj) === "[object Function]";
        }
        
        
    function load(url){
            
    var script = document.createElement('script'),
                done 
    = false;
            script.src 
    = url;
            script.async 
    = true;
            script.charset 
    = charset;
     
            script.onload 
    = script.onreadystatechange = function() {
                
    if ( !done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) {
                    done 
    = true;
                    script.onload 
    = script.onreadystatechange = null;
                    
    if ( script && script.parentNode ) {
                        script.parentNode.removeChild( script );
                    }
                }
            };
            
    if ( !head ) {
                head 
    = document.getElementsByTagName('head')[0];
            }
            head.appendChild( script );        
        }
        
        
    if(typeof params === "string"){
            params 
    = params || "";
            query 
    += "&";
        }
    else{
            params 
    = params || {};
            
    for (var key in params ) {
                
    if ( params.hasOwnProperty(key) ) {
                    query 
    += encodeURIComponent(key) + "=" + encodeURIComponent(params[key]) + "&";
                }
            }
        }
        
    var jsonVar = "jsonp" + getTimeVer();
        w[jsonVar] 
    = function(data){
            callback.call(
    null, data);
            
    try{
                
    delete w[jsonVar];
            }
    catch(e){
                
            }
            w[jsonVar] 
    = null;
        };
        
        load(url 
    + query + "callback=" + jsonVar);
        
    }

    document.getElementById(
    "click").onclick = function(){
        getJSON(
    "http://www-0f3d8c090ce:8080/foundation/servlet/JsonCallBack"function(data){
            alert(data.name);
        });
    };
  • 相关阅读:
    行测-民法典
    行测-中心理解
    行测-资料分析
    行测-数量关系
    行测-三视图、截面图、立体拼合
    行测-加强题型
    C# Unity游戏开发——Excel中的数据是如何到游戏中的 (四)2018.4.3更新
    UGUI batch 规则和性能优化
    Unity 绘图性能优化
    Unity UGUI —— 鼠标穿透UI问题(Unity官方的解决方法)
  • 原文地址:https://www.cnblogs.com/sniper007/p/2171170.html
Copyright © 2020-2023  润新知