• 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之后执行。

  • 相关阅读:
    sql连接查询中的分类
    HTML之页面镶嵌体验
    JavaScript之搜索框
    (转)Android之常用功能方法大集合
    JAVA之执行cmd命令
    Html之网页分屏浏览
    Javascript之三种按钮点击事件
    用JavaScript做一个小小设计
    JavaBean之简单应用JSP页面
    计算器
  • 原文地址:https://www.cnblogs.com/em2464/p/10304449.html
Copyright © 2020-2023  润新知