ajax book

我的常用ajax样例

// url(String):请求地址
// param(String):请求参数
// targetId(String):结果显示id
function ajaxReq(url, param, targetId) {
    $.ajax({
        type : "post",
        url : url,
        data : param,
        beforeSend : function() {
            $("#btn").attr({
                disabled : "disabled"
            });
            $("#firstDiv").removeClass("red");
            $("#firstDiv").addClass("green");
            $("#secondDiv").show(1000);
        },
        success : function(data) {
            var json = eval("(" + data + ")");

            if (json.errorCode == "0000") {
                $("#secondDiv").hide();
                $("#btn").css("background-color", "green");
                $("#" + targetId).val(json.respInfo);
            } else {
                $("#btn").css("background-color", "red");
            }
        },
        complete : function() {
            validateAddress();
        },
        error : function(data) {
            $("#firstDiv").removeClass("green");
            $("#firstDiv").addClass("red");
            $("#flag").removeClass("active");
            console.info("error: " + data.responseText);
        }
    });

}

 

 

参数说明:

 

data

类型:String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

data参数可以为纯字符串,对象,数组,如下

var param1 = "纯字符串";

var param2 = {
    "name" : "cici",
    "age" : "18",
    "address" : "china"
};
param2["birthDate"]="2000-01-01";
        
var param3 = ["id1","id2","id3"];

 

 

contentType

真实请求目标服务器的内容类型

类型:
默认值: 

 

dataType

期望目标服务器返回的数据类型

类型:
默认值:

 

processData

https://segmentfault.com/q/1010000007410014

类型:Boolean
默认值: true。默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

 

让ajax请求时带head头

在ajax请求后台时在请求标头RequestHeader加token--http://www.cnblogs.com/zfdcp-028/p/6374632.html

 

 

 

 

解决拦截器对ajax请求的的拦截

拦截器配置:

复制代码
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {
        
        //获取判定登陆的session是否存在
        String token = (String) request.getSession().getAttribute("token");
        String postId = (String) request.getSession().getAttribute("postId");
        if(token == null || token == ""){
            String XRequested =request.getHeader("X-Requested-With");
            if("XMLHttpRequest".equals(XRequested)){
                response.getWriter().write("IsAjax");
            }else{
                response.sendRedirect("/m-web/user/toLogin");
            }
            return false;
        }
        if(postId == null || postId == ""){
            String XRequested =request.getHeader("X-Requested-With");
            if("XMLHttpRequest".equals(XRequested)){
                response.getWriter().write("IsAjax");
            }else{
                response.sendRedirect("/m-web/user/toLogin");
            }
            return false;
        }
        return true;
    }
复制代码

1、判断 String XRequested =request.getHeader("X-Requested-With") 的值,目的是判断是否是ajax请求。

2、response.getWriter().write("IsAjax");写出一个响应的数据给ajax,这样就可以在ajax里面做判断

  判断的方式存在两种方式:

  1)直接在ajax里面做判断(不建议)

success:function(data){
    if(data == "IsAjax"){
        window.location.href="m-web/user/toLogin"
        return;
    }
}

  2)改jQuery源码然后在做压缩,是针对全局的方式来修改的(建议)

复制代码
      if ( isSuccess ) {// if no content
                if ( status === 204 || s.type === "HEAD" ) {
                    statusText = "nocontent";

                // if not modified
                } else if ( status === 304 ) {
                    statusText = "notmodified";

                // If we have data, let's convert it
                } else {
                    statusText = response.state;
                    success = response.data;
                    error = response.error;
                    isSuccess = !error;
                    //解决ajax拦截问题
                    var result = responses.text;
                    if(result.indexOf("IsAjax")>=0){
                        window.location.href="m-web/user/toLogin";
                        return;
                    }
                }
            }
复制代码
 
 
 
 

ajax下载大文件

 
posted @ 2018-01-19 09:16  苦涩泪滴  阅读(115)  评论(0)    收藏  举报