Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了模仿jsonp跨域请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var jsonp = function() {
  var extend = function(obj,attrs) {
    for (var name in attrs) {
      obj[name] = attrs[name];
    }
  };
  var jsonp = function() {
    jsonp_imp.apply(null,arguments);
  };
  extend(jsonp,{
    guid: 0,requests: {},avail_tag: [],request_timeout: 5 //seconds
  });
  
  var request = function(obj) {
    extend(this,obj);
    this.init && this.init();
  };
  var oo = request.prototype;
  oo.remove = function() {
    var js = this.js;
    js.parentNode.removeChild(js);
    js = null;
    @R_197_9421@e jsonp.requests[this.id];
  };
  oo.on_complete = function() {
    if (this.success) {
      this.success();
      this.success = null;
    }
  };
  oo.on_timeout = function() {
    var state = this.js.readyState;
    if (state != 'complete' && state != 'loaded' && this.Failed) {
      this.Failed();
      this.Failed = null;
    }
    state = null;
    this.remove();
  };
  oo.init = function() {
    var request = this;
    this.js.onload = function() {
      request.on_complete();
    };
    setTimeout(function() {
      request.on_timeout();
    },request.timeout);
  };
  
  var jsonp_imp = function(url,charset,timeout,Failed,success) {
    var head = document.getElementsByTagName('head')[0];
    var js = document.createElement('script');
    head.appendChild(js);
    if (!charset) {
      charset = 'utf-8';
    }
    var id = jsonp.guid++;
    if (!timeout) {
      timeout = jsonp.request_timeout * 1000;
    }
    var Now = new Date();
    var request = new request({
      id: id,url: url,charset: charset,Failed: Failed,success: success,js: js,stat_time: Now,timeout: timeout
    });
    
    
    jsonp.requests[id] = request;
    js.charset = charset;
    js.src = url;
    return id;
  };
  return jsonp;
}();

var url = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.js";
var url2 = "http://saic-sis.escdn.com/api.PHP?op=get_linkage_xjw&parentid=10000000000004&act=ajax_getlist&keyid=1&callBACk=cb";
jsonp(url2,null,5000,function(){alert("Failed");},function(){alert("load ok");}
);
function cb(d) {
  console.log(d);
}

大佬总结

以上是大佬教程为你收集整理的模仿jsonp跨域请求全部内容,希望文章能够帮你解决模仿jsonp跨域请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。