加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JQuery中模拟image的ajaxPrefilter与ajaxTransport处理

发布时间:2020-12-15 23:31:45 所属栏目:百科 来源:网络整理
导读://///////////////////// // 请求分发器 transports // /////////////////////// $.ajaxTransport("image",function(s) { if (s.type === "GET" s.async) { var image; return { send: function(_,callback) { image = new Image(); function done(status) {

///////////////////////
// 请求分发器 transports //
///////////////////////
$.ajaxTransport("image",function(s) {
if (s.type === "GET" && s.async) {
var image;
return {
send: function(_,callback) {
image = new Image();
function done(status) {
if (image) {
var statusText = (status == 200) ? "success" : "error",tmp = image;
image = image.onreadystatechange = image.onerror = image.onload = null;
callback(status,statusText,{
image: tmp
});
}
}
image.onreadystatechange = image.onload = function() {
done(200);
};
image.onerror = function() {
done(404);
};
show(s.url)
image.src = s.url;
},abort: function() {
if (image) {
image = image.onreadystatechange = image.onerror = image.onload = null;
}
}
};
}
});

$("#test").click(function(){

 //执行一个异步的HTTP(Ajax)的请求。
var ajax = $.ajax({
  test   : true,//测试
  url   : '547d5a45000156f406000338-590-330.jpg',dataType : 'image',type   : 'POST',data: {
    foo: ["bar1","bar2"]
  },//这个对象用于设置Ajax相关回调函数的上下文
  context: document.body,//请求发送前的回调函数,用来修改请求发送前jqXHR
  beforeSend: function(xhr) {
    xhr.overrideMimeType("text/plain; charset=x-user-defined");
    show('局部事件beforeSend')
  },//请求完成后回调函数 (请求success 和 error之后均调用)
  complete: function() {
    show('局部事件complete')
  },error: function() {
    show('局部事件error请求失败时调用此函数')
  },success: function() {
    show('局部事件success')
  }
})

ajax.done(function() {
  show('done')
}).fail(function() {
  show('fail')
}).always(function() {
  show('always')
})</pre>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读