GVKun编程网logo

shiro对于ajax请求超时的拦截客户端最简单配置方法(ajax超时处理)

11

对于想了解shiro对于ajax请求超时的拦截客户端最简单配置方法的读者,本文将提供新的信息,我们将详细介绍ajax超时处理,并且为您提供关于$.ajax方法的使用-AJAX请求客户端和服务端的实现、

对于想了解shiro对于ajax请求超时的拦截客户端最简单配置方法的读者,本文将提供新的信息,我们将详细介绍ajax超时处理,并且为您提供关于$.ajax方法的使用-AJAX请求客户端和服务端的实现、ajax 请求超时判断 (转载)、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、Ajax请求Session超时的处理的有价值信息。

本文目录一览:

shiro对于ajax请求超时的拦截客户端最简单配置方法(ajax超时处理)

shiro对于ajax请求超时的拦截客户端最简单配置方法(ajax超时处理)

$.ajaxSetup({ complete:function(XMLHttpRequest,textStatus){ if(textStatus=="parsererror"){ alert('登录超时,请重新登录后再试'); window.location.href = basePath+'loginIndex'; } else if(textStatus=="error"){ alert('系统异常,请联系技术人员!'); } } });

引用至:

http://my.oschina.net/u/568577/blog/295525(author:雨花石)

$.ajax方法的使用-AJAX请求客户端和服务端的实现

$.ajax方法的使用-AJAX请求客户端和服务端的实现

客户端代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function () {
  $('#selectNum').change(function () {
    var idValue = $(this).val();
    var show = $('#show');
    $.ajax({
      url: 'Server.aspx',      type: 'POST',      data: { id: idValue },      //调小超时时间会引起异常
      timeout: 3000,      //请求成功后触发
      success: function (data) { show.append('success invoke!' + data+'<br/>'); },      //请求失败遇到异常触发
      error: function (xhr,errorInfo,ex) { show.append('error invoke!errorInfo:' + errorInfo+'<br/>'); },      //完成请求后触发。即在success或error触发后触发
      complete: function (xhr,status) { show.append('complete invoke! status:' + status+'<br/>'); },      //发送请求前触发
      beforeSend: function (xhr) {
      //可以设置自定义标头
      xhr.setRequestHeader('Content-Type','application/xml;charset=utf-8');
      show.append('beforeSend invoke!' +'<br/>');
      },      //是否使用异步发送
      async: true
    })
  });
})
</script>
</head>
<body>
<select id="selectNum">
  <option value="0">--Select--</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<div id="show"></div>
</body>
</html>

服务端:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Server : System.Web.UI.Page
{
    protected void Page_Load(object sender,EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (Request["id"] != null && !string.IsNullOrEmpty(Request["id"].ToString()))
            {
              //启用该句会引发ajax超时异常
             //   System.Threading.Thread.Sleep(3000);
                Response.Write(GetData(Request["id"].ToString()));
            }
        }
    }

    protected string GetData(string id)
    {
        string str = string.Empty;
        switch (id)
        {
            case "1":
                str += "This is Number 1";
                break;
            case "2":
                str += "This is Number 2";
                break;
            case "3":
                str += "This is Number 3";
                break;
            default:
                str += "Warning Other Number!";
                break;
        }
        return str;
    }
}


附:参数表

options详细范围值

名称

类型

描述

url

字符串

请求的URL地址

type

字符串

将要使用的HTTP方法。通常是POST或GET。如果省略,则默认为GET

data

对象

一个对象,其属性作为查询参数而传递请求。如果是GET请求,则把数据作为查询字符串传递;如果是POST请求,则把数据作为请求体传递。在这两种情况下,都是由$.ajax()实用工具函数来处理值的编码

dataType

字符串

一个关键字,用来标识预期将被响应所返回的数据的类型。这个值决定再把数据传递给回调函数之前(如果有)进行什么后续处理。有效值如下:

xml-响应文本被解析为XML文档,而作为结果的XML DOM被传递给回调函数

html-响应文本未经处理就被传递给回调函数。在已返回HTML片段内的任何<script>块将被求值

json-响应文本被求值为JSON字符串,而作为结果的对象被传递给回调函数

jsonp-与json相似,不同之处是提供远程脚本支持(假定远程服务器支持)

script-响应文本被传递给回调函数。在任何回调函数被调用之前,响应被作为一个或多个JavaScript语句而进行处理

text-响应文本被假定为普通文本。服务器资源负责设置适当的内容类型响应标头。如果省略这个属性,则不对响应文本进行任何处理或求值就传递给回调函数

timeout

数值

设置Ajax请求的超时值(毫秒)。如果请求在超时值到期之前仍未完成,则中止请求并且调用错误回调函数(如果已定义)

global

布尔型

启用或禁用全局函数的触发。这些函数可以附加到元素上,并且在Ajax调用的不同时刻或状态下触发。默认启用全局函数触发

contentType

字符串

将要在请求上指定的内容类型。默认为application/x-www-form-urlencoded(与表单提交所使用的默认类型相同)

success

函数

如果请求的响应指示成功状态码,则这个函数被调用。响应体作为第一个参数被返回给这个函数,并且根据指定的dataType属性进行。第二个参数是包含状态码的字符串—这种情况下永远为成功状态码

error

函数

如果请求的响应返回错误状态码,则这个函数被调用。三个实参被传递给这个函数:XHR实例、状态消息字符串(在这种情况下永远为错误状态码)以及XHR实例所返回的异常对象(可选)

complete

函数

请求完成时被调用。两个实参被传递:XHR实例和状态消息字符串(成功状态码或错误状态码)。如果也指定了success或error回调函数,则这个函数在success或error回调函数调用之后被调用

beforeSend

函数

在发起请求之前被调用。这个函数被传递XHR实例,并且可以用来设置自定义的标头或执行其他预请求操作

async

布尔型

如果指定为false,则请求被提交为同步请求。在默认的情况下,请求是异步的

processData

布尔型

如果设置为false,则阻止已传递数据被加工为URL编码格式。默认情况下,数据被加工为URL编码格式(适用于类型为application/x-www-form-urlencoded的请求)

ifModified

布尔型

如果设置为true,则自从上一次请求以来,只有在响应内容没有改变的情况下(根据Last-Modified标头)才允许请求成功。如果省略,则不执行标头检查

ajax 请求超时判断 (转载)

ajax 请求超时判断 (转载)

ajax请求时有个参数可以借鉴一下
var ajaxTimeOut = $.ajax({
  url:'''',  //请求的URL
  timeout : 1000, //超时时间设置,单位毫秒
  type : ''get'',  //请求方式,get或post
  data :{},  //请求所传参数,json格式
  dataType:''json'',//返回的数据格式
  success:function(data){ //请求成功的回调函数
    alert("成功");
  },
  complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数
    if(status==''timeout''){//超时,status还有success,error等值的情况

       ajaxTimeOut.abort(); //取消请求
       alert("超时");

    }
  }
});

原文:https://blog.csdn.net/hu_mouse/article/details/47972271 

AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数

AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数

定义和用法
ajaxSetup() 方法为将来的 AJAX 请求设置默认值。
语法
$.ajaxSetup({name:value,name:value,... })

 

该参数为带有一个或多个名称/值对的 AJAX 请求规定设置。下面的表格中列出了可能的名称/值:名称 值/描述async 布尔值,表示请求是否异步处理。默认是 true。beforeSend(xhr) 发送请求前运行的函数。cache 布尔值,表示浏览器是否缓存被请求页面。默认是 true。complete(xhr,status) 请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。contentType 发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。context 为所有 AJAX 相关的回调函数规定 "this" 值。data 规定要发送到服务器的数据。dataFilter(data,type) 用于处理 XMLHttpRequest 原始响应数据的函数。dataType 预期的服务器响应的数据类型。error(xhr,status,error) 如果请求失败要运行的函数。global 布尔值,规定是否为请求触发全局 AJAX 事件处理程序。默认是 true。ifModified 布尔值,规定是否仅在最后一次请求以来响应发生改变时才请求成功。默认是 false。jsonp 在一个 jsonp 中重写回调函数的字符串。jsonpCallback 在一个 jsonp 中规定回调函数的名称。password 规定在 HTTP 访问认证请求中使用的密码。processData 布尔值,规定通过请求发送的数据是否转换为查询字符串。默认是 true。scriptCharset 规定请求的字符集。success(result,xhr) 当请求成功时运行的函数。timeout 设置本地的请求超时时间(以毫秒计)。Traditional 布尔值,规定是否使用参数序列化的传统样式。type 规定请求的类型(GET 或 POST)。url 规定发送请求的 URL。默认是当前页面。username 规定在 HTTP 访问认证请求中使用的用户名。xhr 用于创建 XMLHttpRequest 对象的函数。

Ajax请求Session超时的处理

Ajax请求Session超时的处理

1、客户端的js处理(使用jqury)

<script type="text/javascript">
			//<![CDATA[  
		 	$(document).ajaxComplete(function(event, xhr, settings) {
				if(xhr.getResponseHeader("sessionstatus")=="timeOut"){
					if(xhr.getResponseHeader("loginPath")){
						window.location.replace(xhr.getResponseHeader("loginPath"));
					}else{
						alert("Request time out relogin plase !");
					}
				}
			}); 
			//]]>
		</script>

2、服务器端处理(filter中)

if(sessionTimeOut){
	//判断是否为ajax请求
		if (httpRequest.getHeader("x-requested-with") != null && httpRequest.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
			HttpServletResponse httpResponse = (HttpServletResponse)response;
			httpResponse.addHeader("sessionstatus", "timeOut");
			httpResponse.addHeader("loginPath",loginUrl);
			filterChain.doFilter(request, response);//不可少,否则请求会出错
		}else{//不是ajax请求,超时直接重定向
			((HttpServletResponse) response).sendRedirect(loginUrl);
		}
	}


今天的关于shiro对于ajax请求超时的拦截客户端最简单配置方法ajax超时处理的分享已经结束,谢谢您的关注,如果想了解更多关于$.ajax方法的使用-AJAX请求客户端和服务端的实现、ajax 请求超时判断 (转载)、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、Ajax请求Session超时的处理的相关知识,请在本站进行查询。

本文标签: