各种特异功能

ajax 重定向

后端

if("XMLHttpRequest".equals(req.getHeader("X-Requested-With"))){
    res.setHeader("SESSIONSTATUS", "TIMEOUT");
    res.setHeader("CONTEXTPATH", hostString+"/login");
    res.setStatus(HttpServletResponse.SC_FORBIDDEN);
}else{
    res.sendRedirect(hostString+"/login");
}

前端

$.ajaxSetup( {
    //设置ajax请求结束后的执行动作
    complete : function(XMLHttpRequest, textStatus) {
        // 通过XMLHttpRequest取得响应头,sessionstatus
        var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
        if (sessionstatus == "TIMEOUT") {
            var win = window;
            while (win != win.top){
                win = win.top;
            }
            win.location.href= XMLHttpRequest.getResponseHeader("CONTEXTPATH");
        }
    }
});

监听浏览器后退按钮

$(function(){ 
    pushHistory(); 
    window.addEventListener("popstate", function(e) { 
        history.go(-2);
    }, false); 
    function pushHistory() { 
        var state = { 
            title: "title", 
            url: "#"
        }; 
        window.history.pushState(state, "title", "#"); 
    }
});

同时提交表单数据和js数据

var goods = $("#form").serialize();
var attrs = $("#table").bootstrapTable('getData');
goods.goodsAttr = attrs;

直接提交goods,后台会报错。因为这个时候goods的Content-Type被指定为“application/x-www-form-urlencoded”,而attrs的Content-Type为“application/json”。
解决办法是将表单数据转换为Object对象,如下:

$.fn.serializeObject = function(){
    var o = {};
    var a = this.serializeArray();
    //将页面表单序列化成一个JSON结构的对象,不是JSON字符串。
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
}

此时需要指定Content-Type为“application/json”,并且要使用JSON.stringify(goods)将对象变成字符串,后台要加上“@RequestBody”。

Ext 行高亮

viewConfig : {
    getRowClass : function(record){
        return record.get("uploaded") == 0 ? 'highlight' : '';
    }
}

fullCalendar设置单元格背景色

events : function(start, end, callback){
    //每次点击上一月、下一月都会获取月份,把月份传入后台获取数据
    var month = this.getDate().format('YYYY-MM');
    $.ajax({
       url: createUrl('/sitereservation/getDaysByMonth'),
       data: {month: month, roomNumber: roomNumber},
       success: function(result){
         var data = result.month;
         for(var i=0; i<data.length; i++){
            $(".fc-bg td[data-date='"+ month + data[i] +"']").css({'background-color': 'red'});
         }
       }
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值