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及更早版本都不支持。