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);}
});

转载于:https://www.cnblogs.com/muge10/p/6383545.html

jQuery / zepto ajax 全局默认设置相关推荐

  1. JavaScript 学习-48.$.ajaxSetup方法设置AJAX的全局默认设置

    前言 $.ajaxSetup方法用于设置AJAX的全局默认设置.之后执行的所有AJAX请求,如果对应的选项参数没有设置,将使用更改后的默认设置. 这方便我们设置error 统一返回样式. 示例 设置全 ...

  2. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  3. jquery的ajax全局事件和AJAX 请求正在进行时显示“正在加载”

    实例 当 AJAX 请求正在进行时显示"正在加载"的指示: $("#txt").ajaxStart(function(){$("#wait" ...

  4. jQuery的ajax全局钩子函数

    jQuery的 ajax 全局钩子函数 所谓的钩子函数 , 是和 某个程序绑定的函数 当这个程序执行到不同阶段,不同步骤时,执行不同的函数程序 当前的 ajax 钩子函数,就是和 ajax程序绑定的函 ...

  5. jquery之ajax——全局事件引用方式以及各个事件(全局/局部)执行顺序

    jquery中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend(局部事件) 3.ajaxSend(全局事件) 4.success(局部事件) 5.ajaxSucce ...

  6. jQuery和vue 设置ajax全局请求

    一个很常见的问题,如果用户登录网站session过期,需要用户返回登录页面重新登录. 如果是http请求可以在后台设置拦截器,统一拦截并跳转.但是ajax方法并不能通过后台直接跳转. 所以我们可以写一 ...

  7. jQuery系列 第八章 jQuery框架Ajax模块

    第八章 jQuery框架Ajax模块 8.1 jQuery框架中的Ajax简介 Ajax技术的核心是XMLHTTPRequest对象,该对象是Ajax实现的关键,发送异步请求.接收服务器端的响应以及执 ...

  8. $.ajax的async参数,jquery的$.ajax async使用详解

    async在jquery ajax中是一个同步参数了,我们下面来给大家介绍在jquery ajax中使用async时碰到的一些问题与方法介绍,希望例子能给各位同学带来一些帮助哦. async默认是tr ...

  9. IDEA快速导入包、默认设置以及自定义配置maven

    目录 1.快速导入包 2.设置自定义meven 3.全局默认设置 1.快速导入包 导入包可以是通过快捷键alt+enter一个一个导入. 也可以通过设置idea来进行自动导入,勾选完成后,点击Appl ...

最新文章

  1. 大话设计模式笔记(七)の原型模式
  2. asp导出word中文乱码_解决文档打开乱码问题丨小工具系列
  3. 4.5万字手把手教你实现MySQL TB级数据存储!!
  4. Anchor-free目标检测 | 工业应用更友好的新网络(附大量相关论文下载)
  5. [20171124]手工使用Seed_Database.dfb和Seed_Database.ctl建库.txt
  6. 漫画:什么是HashMap?
  7. Spring--总体架构
  8. mysql使用常量列_MySQL 执行计划
  9. java 通过手机 实时定位_恒高借助uwb定位技术,让机房复杂问题化繁为简
  10. 四、Dynamic-programming algorithm Dynamic--LCS
  11. 【LeetCode】剑指 Offer 27. 二叉树的镜像
  12. 软件测试转行月薪过万,那些转行软件测试的新手小白,是如何从月薪5000到月薪2万的?...
  13. tensorflow保存模型参数文件pb查看
  14. Javascript特效:距离某个时间倒计时
  15. Matlab DIP(瓦)ch5图像复原练习
  16. 收藏了8年的PHP优秀资源,都给你整理好了
  17. cisco(思科)交换机操作(基本查询命令)【一】
  18. Node.js Cannot find module 'xxx' 问题解决
  19. PS 反选 剪切
  20. 班旗怎么用软件设计,(最新整理)班旗设计大赛主持词

热门文章

  1. Thinkphp 关联模型和试图模型区别
  2. 转载Linq中GroupBy方法的使用总结
  3. magento cms page、登錄頁面修改(增加)breadcrumbs
  4. 谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)
  5. 关于反射的我的一些看法
  6. 从零开始学习PYTHON3讲义(二)把Python当做计算器
  7. Java基础-Java中的内存分配与回收机制
  8. 百度与华为全面战略合作 人工智能手机真的要来了
  9. Iptalbes自动封杀暴力破解(Qmail邮件系统)者的IP地址
  10. VMware Horizon虚拟桌面工具箱2.0-审计,远程协助,控制台,电源