Jquery

1. 字符串格式化

var hot_li_template = '<li><div class="li-out"><span class="last"><i>{0}</i></span><span class="name"><a  href="{1}">{2}</a></span><span class="nums">{3}</span></div></li>'

jQuery.format(hot_li_template, i + 1, url, data.title, numberScale(data.views));

 

2. 四舍五入指定小数位数

ƒ (num) {
    var ret = num;

    if (num > 1000) {
        ret = (num / 1000).toFixed(1) + 'k';
    }
    return ret;
}

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

 

3. 单选框全选

$('.checkall').on('click', function(event) {
        var checked = $(this).prop('checked');
        if (checked) {
       //attr方法第三次点击会失效 //$(
this).closest('table').find('input[type=checkbox]').attr('checked', 'checked');
       $(this).closest('table').find('input[type=checkbox]').prop('checked', 'checked'); }
else { $(this).closest('table').find('input[type=checkbox]').removeAttr('checked'); } });

 

4. ajax请求,后台无法获取session信息

$.ajax({
        url:base + "/aaa",
        type:"get",
        data:{appId:"1"},
        xhrFields: {
            withCredentials: true
        },
        success:function(data)  {
            var response = data.data;
            var startHtml = '<ul class="nav" id="side-menu">';
            if(response != null){
                for(var i = 0; i < response.length; i ++){
                    var inData = response[i];
                    var url = "#";
                    if(inData.children == null  || inData.children.length == 0){
                        url = inData.url;
                    }
                    startHtml += '<li><a href="' + url  + '"><i class="fa fa-dashboard fa-fw"></i>' + inData.name + '<span class="fa arrow"></span></a>';
                    if(inData.children != undefined && inData.children.length > 0){
                        var outHtml  = '<ul class="nav nav-second-level">';
                        for(var j = 0; j < inData.children.length; j ++){
                            var outData = inData.children[j];
                            outHtml += '<li><a href="' + outData.url  + '"><i class="fa fa-dashboard fa-fw"></i>' + outData.name + '</a></li>';
                        }
                        startHtml += outHtml + '</ul>';
                    }
                    startHtml += '</li>';
                }
            }
            startHtml += '</ul>';
            console.log(startHtml);
            $("#initMenu").append(startHtml);
        }
    })

解决方法为添加:

xhrFields: {
            withCredentials: true
        }

默认情况下,跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据。如果服务器接收带凭据的请求,会用下面的HTTP头部来响应。
Access-Control-Allow-Credentials: true。
如果发送的是带凭据的请求,但服务器的相应中没有包含这个头部,那么浏览器就不会把相应交给JavaScript(于是,responseText中将是空字符串,status的值为0,而且会调用onerror()事件处理程序)。另外,服务器还可以在Preflight响应中发送这个HTTP头部,表示允许源发送带凭据的请求。
支持withCredentials属性的浏览器有Firefox 3.5+、Safari 4+和Chrome。IE10及更早版本都不支持。

posted @ 2018-01-02 20:10  yangfei969  阅读(112)  评论(0编辑  收藏  举报