ajax设置默认值ajaxSetup()方法

 1 $(function(){
 2     //设置全局 jQuery Ajax全局参数
 3     $.ajaxSetup({
 4         type:"POST",
 5         async:false,
 6         cache:false,
 7         dataType:"JSON",
 8         error:function(jqXHR,textStatus,errorThrown){
 9             switch(jqXHR.status){
10                 case(500):
11                     alert(‘服务器系统内部错误‘);
12                     break;
13                 case(401):
14                     alert(‘未登录‘);
15                     break;
16                 case(403):
17                     alert("无权限执行此操作");
18                     break;
19                 case(408):
20                     alert("请求超时");
21                     break;
22                 default:
23                     alert("未知错误");
24             }
25         },
26         success:function(data){
27             alert(‘操作成功!‘);
28         }
29     })
30 })

当设置该属性后,在其他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之后执行。

原文地址:https://www.cnblogs.com/em2464/p/10304449.html

时间: 2024-10-15 17:30:11

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

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

一. this什么时候是不能省略的,我们举个例子来说明 class User2{ private int id; public int getId() { return id; } public void setId(int id) { this.id = id;//这里如果写成了id=id,那么根据就近原则,第一个id就是形式参数,第二个id也是形式 //参数,所以这里必须要加上this才行,类似于python中的self } } this用来区分局部变量和实例变量的时候,是不能省略的. 二.

model中设置默认值时 ,使用 lambda 与否的差别以及datetime的默认值方法

'date': '2013-01-01'  #固定值 'date': time.strftime('%Y-%m-%d')  #启动时候的值 'date': lambda *a: time.strftime('%Y-%m-%d')  #当前日期   6.1后,官方建议date/datetime的默认值的写法是(能解决时区问题): 'birthdate': fields.date.context_today, 'create_at': fields.datetime.now, model中设置默认值

Extjs combobox设置默认值

转载:http://www.54mask.com/extjs-combobox-default-value.html 相信很多人都遇到了在ExtJS框架中设置combo组件默认值的需求,ExtJS框架并没有提供现成的配置项或者方法来解决此问题,本人认为主要是因为此种需求的应用场景有限且很难达到适应于不同场景的实现. combo组件的设值其实很简单: 1 var getRecruitmentName = new Ext.data.JsonStore({ 2 url: '',--后台地址 3 bas

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

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性设置默认值.在我们示例中,当数据库中返回null值时,用‘0’作为YearsWorked属性的默认值. 解决方案 假设你有如图3-7所示的模型,你想通过模型查询employees.在数据库中,代表employees的表包含一可为空的YearsWorked列.该列映射到Employee实体中的YearsWork

miniUI input设置默认值,js获取年月注意事项,数据库nvl函数使用

2017-6-5周一 今天碰到的一个需求是:两税附征模块进入页面筛选时间默认值为当前月的上一个月,并根据筛选结果显示数据,我们用的框架为miniUI. 坑1: 默认值设置,刚刚接触miniUI,对里面的用法和操作不太熟悉,所以我直接用jquery找到时间输入的input框,设置它的val属性,发现不生效,后来查了资料才发现涉及miniUI的标签要用miniUI提供的方法.设置默认值代码如下: //设置id为month2的input框的默认值 mini.get('month2').setValue

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

原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){   return $a+$b; } echo simue(); //输出3 echo simue(10); //输出12 echo simue(10,20); //输出30 但js却不能这么定义,如果写function

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

import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.sql.Timestamp; class Person { private String name; private int age; private Timestamp birth; public Timestamp getBirth() { return birth

MySql折腾小记二:text/blog类型不允许设置默认值,不允许存在两个CURRENT_TIMESTAMP

From: http://www.cnblogs.com/cyq1162/archive/2011/05/17/2049055.html 在 CYQ.Data 数据框架的反向工程中,遇到MySQL的问题又2个,记录下先. 1:对于时间的默认值,为:CURRENT_TIMESTAMP,不允许一个表存在两个日期都设置了:CURRENT_TIMESTAMP 解决的办法: 按理只设一个. 但在反向工程中,若遇到两个或以上的设置,为保证导数据的正常,直接取消日期的默认值. 2:text/blog类型不允许

ant-design-pro弹出框表单设置默认值

项目需求需要使用ant-design-pro的弹出框表单并在表单出现时设置默认值 然而按照官方的示例给 <Input> 标签设置 defaultValue 时发现并没有效果.如下所示: <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 15 }} label="项目名称"> {form.getFieldDecorator('ProjectName', { rules: [{ required: true,