$(function(){
//设置全局 jQuery Ajax全局参数
$.ajaxSetup({
type:"POST",
async:false,
cache:false,
dataType:"JSON",
error:function(jqXHR,textStatus,errorThrown){
switch(jqXHR.status){
case(500):
alert('服务器系统内部错误');
break;
case(401):
alert('未登录');
break;
case(403):
alert("无权限执行此操作");
break;
case(408):
alert("请求超时");
break;
default:
alert("未知错误");
}
},
success:function(data){
alert('操作成功!');
}
})
})

当设置该属性后,在其他jQuery没有设置的ajax中,默认使用该设置。

.ajaxStart()

  在ajax请求刚开始时执行一个处理函数。

  每当一个ajax请求即将发送,jQuery检查是否有任何其他响应过程中的ajax请求(注:未完成的请求)。如果没有检查到,jQuery就会触发ajaxStart事件,在这个时间点所有处理函数都会使用.ajaxStart()方法注册并执行。

请注意以下代码的执行结果:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>
<script>
$(document).ajaxStart(function(){
$('.log').text("Trigger ajaxStart handler.");
console.log(1);
});
$('.trigger').click(function(e){
console.log(2);
$('.result').load('ajax/test.html');
});
$(document).ajaxSuccess(function(e){
console.log(31);
});
$(function(){
//设置全局 jQuery Ajax全局参数
$.ajaxSetup({
type:"POST",
async:false,
cache:false,
dataType:"JSON",
beforeSend:function(){
console.log(4)
},
error:function(jqXHR,textStatus,errorThrown) {
switch (jqXHR.status) {
case(500):
alert('服务器系统内部错误');
break;
case(401):
alert('未登录');
break;
case(403):
alert("无权限执行此操作");
break;
case(408):
alert("请求超时");
break;
case(404):
alert('地址错误');
break;
default:
alert("未知错误");
}
},
success:function(data){
//alert('操作成功!');
console.log(3);
}
})
})
</script>
</body>
</html>

  运行结果:

        

也就是说方法调用顺序如下:

  ajax请求代码之前的代码

  ajaxStart

  beforeSend

  success

  ajaxSuccess

https://blog.csdn.net/zhao1949/article/details/52787124

  jQuery中各个事件的执行顺序如下:

    1.ajaxStart (全局事件)

     2.beforeSend

     3.success

    4.ajaxSuccess

    5.error

    6.ajaxError (全局事件)

    7.complete

    8.complete

    9.ajaxComplete (全局事件)

    10.ajaxStop (全局事件)

先执行success,再执行error???,最后始终执行complete

  区别是:

    success:当请求成功时调用函数,即status==200

    complete:当请求完成时调用函数,即status==404、403、302……只要不出错就行。

    因为通常我们需要用来清理资源,所以就设计成complete在success之后执行。

ajax设置默认值ajaxSetup()方法的更多相关文章

  1. Java连载42-this不能省略的情况、构造方法设置默认值的方法

    一. this什么时候是不能省略的,我们举个例子来说明 class User2{ private int id; public int getId() { return id; } public vo ...

  2. oracle设置默认值无效

    一次做农行的项目,在向一个表插入数据时我们要求插入字符类型的操作日期和时间,我们这边当时采取的是给日期和时间字段设置默认值的方法:下面我简单还原一下当时的表结构 -- Create table cre ...

  3. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

  4. select2 取值 遍历 设置默认值

    select2 取值 遍历 设置默认值 本章内容主要介绍Select2 的初始化,获取选中值,设置默认值,三个方法.Select2 美化了单选框,复选框和下拉框,特别是下拉框多选的问题.但同时,Sel ...

  5. select2 插件编辑时设置默认值

    function htDate(selectCustomerId, val) { var customerId = selectCustomerId; var values = val; ajaxJs ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性 ...

  7. java 反射: 当Timestamp类型的属性值为null时,设置默认值

    import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...

  8. (转)js函数参数设置默认值

    原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值   php有个很方便的用法是在定义函数时 ...

  9. Extjs combobox设置默认值

    转载:http://www.54mask.com/extjs-combobox-default-value.html 相信很多人都遇到了在ExtJS框架中设置combo组件默认值的需求,ExtJS框架 ...

随机推荐

  1. I/O 机制的介绍(Linux 中直接 I/O 机制的介绍)

    IO连接的建立方式 1.缓存IO.流式IO: 2.映射IO.块式IO: 3.直接IO. IO的方式: 同步.异步.定时刷新: MMAP与内核空间 mmap使用共享用户空间与内核空间实现: 直接 I/O ...

  2. 第10章 RDB持久化

    Redis是一种内存数据库,掉电即失,为了解决这个问题Redis提供了RDB持久化功能,该功能可以把Redis中的内容以RDB文件的形式存储在硬盘上,并且每次RedisServer启动的时候都会尝试从 ...

  3. HashMap 1.7

    1.关键属性与内部类 1.1属性 使用拉链法解决hash冲突的hash表,hash表里存了多少个元素.数组有多长以及当什么情况下需要扩容是重要的参数. transient Entry<K,V&g ...

  4. Mqtt用户认证

    http://emqtt.com/docs/v2/guide.html 1默认是匿名认证,不用输入用户名和密码,直接可连接 2如何开启用户名和密码认证模式 2-1关闭匿名认证 在你的MQTT安装目录下 ...

  5. 测试 Flask 应用

    测试 Flask 应用 没有经过测试的东西都是不完整的 这一箴言的起源已经不可考了,尽管他不是完全正确的,但是仍然离真理不远.没有测试过的应用将会使得提高现有代码质量很困难,二不测试应用程序的开发者, ...

  6. solidity learning (1)

    学习文档笔记:http://solidity-cn.readthedocs.io/zh/develop/layout-of-source-files.html 1.pragma solidity ^0 ...

  7. SpringBoot之静态资源放行

    为了提高开发效率,编写对应的代码生成器.代码生成器主要有两个方面,一个是在线Web,另外一个是运行某个类. 使用的技术是SpringBoot+MyBatis-Plus+MySQL+JDK8. 在编写在 ...

  8. Android自动化测试学习路线

    最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享! Android里面测试相关的工具和框架太多了.你应该从以下几个方面入手. 编程语言的选择 如果你要学习的 ...

  9. Tomcat优化之容易集合经验

    Tomcat优化1. 如何加大tomcat连接数在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有: maxThreads : t ...

  10. JS prototype 生成机制

    默认的 prototype 属性是 Object() 对象,只不过每种类型或者自定义类型锁挂载的对象属性不同. 事实上,prototype 的生成是这样的: const Func = function ...