jQuery / zepto ajax 全局默认设置
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);
}
});
jQuery / zepto ajax 全局默认设置的更多相关文章
- IntelliJ IDEA default settings 全局默认设置
可以通过以下两个位置设置IDEA的全局默认设置: 以后诸如默认的maven配置就不需要每次都重复配置了?
- jquery的ajax全局事件详解
jquery在ajax方面是非常强大和方便的,以下是jquery进行ajax请求时方法模板: $.ajax({ type: "get", url: "" ...
- django之全局默认设置查看及admin语言设置
django之admin语言设置 admin后台管理默认使用的是英文,有时我们需要将其设置成自己的语言以方便使用管理: 将 LANGUAGE_CODE = '' 设置为欲设置的语言即可. 以下为dja ...
- jQuery中Ajax的属性设置
1.全局设置为同步 $.ajaxSetup({ async: false });
- jQuery和vue 设置ajax全局请求
一个很常见的问题,如果用户登录网站session过期,需要用户返回登录页面重新登录. 如果是http请求可以在后台设置拦截器,统一拦截并跳转.但是ajax方法并不能通过后台直接跳转. 所以我们可以写一 ...
- jQuery系列 第八章 jQuery框架Ajax模块
第八章 jQuery框架Ajax模块 8.1 jQuery框架中的Ajax简介 Ajax技术的核心是XMLHTTPRequest对象,该对象是Ajax实现的关键,发送异步请求.接收服务器端的响应以及执 ...
- jquery和Ajax(异步js和XML)的应用
Ajax不是值一种单一的技术,而是有机的利用了一系列的交互式网页应用相关的技术所形成的的结合体.它的出现,解开了无刷新更新网页的新时代,并代替传统的Web方式和通过隐藏的框架来进行异步提交的趋势,是w ...
- 为jQuery的$.ajax设置超时时间
jQuery的ajax模块封装了非常强大的功能,有时候我们在发送一个ajax请求的时候希望能有一个超时的时间,想让程序在一段时间请求不到数据时做出一些反馈.幸运的是jQuery为我们提供了这样的参数: ...
- jquery ajax 全局事件
jquery的ajax方法的全部全局事件:(不管是$.ajax().$.get().$.load().$.getJSON()等都会默认触发全局事件) ajaxStart:ajax请求开始前 ajaxS ...
随机推荐
- 1. Two Sum★
题目内容:Given an array of integers, return indices of the two numbers such that they add up to a specif ...
- jquery与js的区别与基础操作
一.什么是 jQuery jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法.它的作者是John Resig,于2006年创建的一个开源项目,随着 ...
- JVM学习之类加载
该文使用Hotspot JDK1.7 一.类加载器 1.什么是类加载器 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java ...
- 基于nodejs模拟浏览器post请求爬取json数据
今天想爬取某网站的后台传来的数据,中间遇到了很多阻碍,花了2个小时才请求到数据,所以我在此总结了一些经验. 首先,放上我所爬取的请求地址http://api.chuchujie.com/api/?v= ...
- 【杂】poj2482 Stars in Your Windows 题面的翻译
原地址:http://poj.org/problem?id=2482 神题,被誉为最浪漫的题目,一位acmer以自己独特的方式写下的殷殷情语 你窗前的星星 纵时光飞逝如梭,也我对你的回忆也永不黯然.从 ...
- 关于 jquery html 动态添加的元素绑定事件——On()
Ajax动态生成的数据,动作绑定需要重新执行 $(document).on('click','.btn1',function(){}); 替换: $('btn1').on('click') = fun ...
- 用python抓取求职网站信息
本次抓取的是智联招聘网站搜索“数据分析师”之后的信息. python版本: python3.5. 我用的主要package是 Beautifulsoup + Requests+csv 另外,我将招聘内 ...
- 剑指offer:重建二叉树
重建二叉树的前置知识: 0.遍历二叉树: (1)前序遍历:根左右 --> 先访问根节点,再前序遍历左子树,最后前序遍历右子树: (2)中序遍历:左根右 --> 先中序遍历左子树,再访问根节 ...
- 学习一点Markdown的基本知识
本文于2017年3月18日首发于LinkedIn,请参考链接 这个世界的进步是由一些"懒"的人推动的.今天讲的这个Markdown,其实也是因为一批厌倦了HTML的各种标签的语法, ...
- [复习]java中hashCode的作用
1.HashCode的官方文档定义 (1)hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如java.util.HashTable提供的哈希表. (2)hashCode的 ...