如何自己封装一个ajax函数 怎么封装一个公共的ajax请求
如何自己封装一个ajax函数
s = {type : POST,
url : xxx,
data : {},
async : true,
success : function(result) {
alert(1111)
},
Callback:function(){
alert(2222)
}
}
var _ajax = $.ajax
$.ajax = function (s) {
var old = s.success
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data data.IsLogout) {
eval(data.Callback)
}
if (old) {
old(data, textStatus, jqXHR)
}
}
_ajax(s)
}
$.ajax(s)开始,跳进你自定义的$.ajax = fuc/..
var old = s.success
将 function(result) {
alert(1111)
}
赋值给 old。这是为了保存之前定义的success
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data data.IsLogout) {
eval(data.Callback)
}
if (old) {
old(data, textStatus, jqXHR)
}
}
自己封装一个方法。并修改参数s的success,让ajax执行完成之后执行这个方法而不是之前的alert(111)
_ajax(s)执行原生的ajax跳到指定的页面。
成功后跳到 s.success = function (data, textStatus, jqXHR) {
alert(3333)
if (data data.IsLogout) {
eval(data.Callback)
}
if (old) {
old(data, textStatus, jqXHR)
}
}
怎么封装一个公共的ajax请求
s = {type : POST,
  url : xxx,
  data : {},
  async : true,
  success : function(result) {
    alert(1111)  
   },
  Callback:function(){
    alert(2222)
    }
}
var _ajax = $.ajax
    $.ajax = function (s) {
    var old = s.success
    s.success = function (data, textStatus, jqXHR) {
    alert(333)
    if (data && data.IsLogout) {
    eval(data.Callback)
    }
    if (old) {
    old(data, textStatus, jqXHR)
    }
    }
    _ajax(s)
    }
$.ajax(s)开始,跳进你自定义的$.ajax = fuc/.....
 var old = s.success
 将 function(result) {
    alert(1111)  
   }
赋值给 old。这是为了保存之前定义的success
 s.success = function (data, textStatus, jqXHR) {
    alert(333)
    if (data && data.IsLogout) {
    eval(data.Callback)
    }
    if (old) {
    old(data, textStatus, jqXHR)
    }
    }
自己封装一个方法。并修改参数s的success,让ajax执行完成之后执行这个方法而不是之前的alert(111)
 _ajax(s)执行原生的ajax跳到指定的页面。
成功后跳到 s.success = function (data, textStatus, jqXHR) {
    alert(3333)
    if (data && data.IsLogout) {
    eval(data.Callback)
    }
    if (old) {
    old(data, textStatus, jqXHR)
    }
    }
promise 阮一峰 封装后的代码怎么处理错误
你说的这段描述是对 jQuery(selector).promise()的描述,并不是 jQuery.Deferred() 的描述。 原文是: Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished
js面向对象封装ajax
1. 在js中, function也是对象.
2. net也是对象
var net = new Object() //声明一个object对象
//alert(typeof net) //object
net.AjaxRequest = function(){} //声明一个function对象
//alert(typeof net.AjaxRequest) //function3. 在这里this指的是net.AjaxRequest
4. net.AjaxRequest.onReadyState 不加prototype是因为在22行要通过 "对象.方法" 的方式直接调用
你问的这几个问题,研究起来会有点深.. 相关连接我放到评论里.
js中promise到底怎么用
我举个生活中的例子吧,比如说你去麦当劳买吃的,你下订单后,会给你一个小纸条,这个小纸条相当于你和麦当劳之间的约定,这个小纸条也可以理解为你所定的餐的一个占位符。等麦当劳饭做好了的时候,会吧饭送到你面前,并且把小纸条收走。
这个如果在代码中的话,就意味着,你在执行代码的时候,可能会在未来某个时刻才会取到值(异步),等在值取到以后,会进行一些相应的处理,比如说ajax,这实际上就是promise的一个典型的应用场景。
我刚刚只是说了promise的一个大的应用场景,我觉得只要能把握住这个,具体的API就可以了。
假如你想对它的使用有一个更深入的了解的话,我还可以推荐你一个小文章: Javascript基础之-Promise
加油