jQuery / zepto 的 $.ajax 方法需要配置很多选项, 有些是很常用的每个 ajax 请求都要用到的, 可以全局设置, 避免每次都写.

注意: 此处用的 jQuery 版本是 1.8.3, zepto 版本是 1.1.6 和 1.2.0. 使用别的版本的要自己测试下.

jQuery 的方法是 jQuery.ajaxSetup()

$.ajaxSetup({
url: "/xmlhttp/",
global: false,
type: "POST"
});

如果想设置 complete error 等回调, 可以用 .ajaxComplete()  .ajaxError() 等.

$.ajaxError(function( event, request, settings ) {
// ...
console.log('global error handler');
}); // jquery 1.9 以后, 全局 ajax 事件必须加在 document 上面
$(document).ajaxError(function( event, jqxhr, setting, thrownError ) {
// ...
console.log('global error handler');
});

如果业务逻辑处写了 error 的回调, 则 jQuery 会先调用业务逻辑处的 error 回调, 再调用全局设置的 error 回调.

$.ajax({
data: {key: value},
success: function(data) {
// success code
}, error: function(msg) { console.log('local error handler');
}
}); // 最终的结果, 先打印 local error handler, 再打印 global error handler
// 这一点与 zepto 不同, 见下文

zepto 的设置方法是修改属性 $.ajaxSettings = {...}

由于 ajaxSettings 是一个属性, 值为一个对象, 直接写 $.ajaxSettings = {...} 会覆盖掉所有默认的选项, 所以可以这么写, 只修改需要的部分

$.ajaxSettings = $.extend($.ajaxSettings, {
error: ajaxFail
});

有一点要注意的是, ajax 的回调函数只能有一个, 如果你在业务逻辑里 $.ajax({}) 里面写了 error 的回调函数, 则会 覆盖掉 全局设置的 error 回调函数

$.ajax({
data: {key: value},
success: function(data) {
// success code
}, error: function(msg) {
// 这里的 error 回调会覆盖掉全局设置的 error 回调
// 也就是全局的 'global error handler' 是不会打印的
console.log('local error handler');
}
});

如果想要在业务逻辑的 error 回调后面再调用全局的 error 回调的话, 需要手动调用全局的回调:

$.ajax({
data: {key: value},
success: function(data) {
// success code
}, error: function(msg) {
// 这里的 error 回调会覆盖掉全局设置的 error 回调
// 也就是全局的 'global error handler' 是不会打印的
console.log('local error handler'); // 想要再调用全局的 error 回调, 需要手动调用
$.ajaxSettings.error(msg);
}
});

最新文章

  1. LSOF 安装与使用
  2. C++之路起航——标准模板库(set)
  3. [Java解惑]类
  4. magento性能优化
  5. 007 The Inheritance In JAVA
  6. 关于mysql group_concat 不能显示为空的列的其他信息
  7. Python中的map()函数和reduce()函数的用法
  8. 算法(Algorithm)是什么?
  9. ajax+php如何获取部分请求的信息显示在对应的div中
  10. win8 iis7/iis8 安装、卸载、设置方法
  11. Android Audio Focus的应用(requestAudioFocus)
  12. 核心动画 CAAnimation 进阶
  13. Struts1、WebWork、Struts2介绍
  14. 1067: [SCOI2007]降雨量
  15. Javascript中的Trait与代码重用
  16. adb+monkey压力测试入门
  17. 京东Alpha平台开发笔记系列(三)
  18. python装饰器同时支持有参数和无参数的练习题
  19. go中的读写锁RWMutex
  20. Struts的JSON机制

热门文章

  1. GridView应用随笔
  2. Summary Ranges leetcode
  3. 1640: [Usaco2007 Nov]Best Cow Line 队列变换
  4. Java设计模式之《调停者模式》及应用场景
  5. Rabbitmq 性能测试
  6. ORACLE获取表信息方法
  7. 多线程——i++的坑
  8. Tomcat+Eclipse乱码问题解决方法
  9. vs打开项目出错:未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.props”的解决办法
  10. 一场完美的“秒杀”:API加速的业务逻辑