2019/12/03 WEB前端 No Comments ajax获取Response Headers响应头信息 **ajax type HEAD获取Response Headers信息,ajax通过Response Headers头信息获取服务端时间** **常用场景:**基于服务器端标准时间做倒计时业务使用。 PS:常见开发人员使用本地时间做倒计时参考时间,在客户端时间不准确时会产生歧义或bug。 **示例如下:** ```javascript //jquery引用注意,ajax done需要1.5版本之后支持 $.ajax({ url: "//lab.fity.cn/time/time.gif", type: "HEAD" }).done(function(data, textStatus, jqXHR) { oncallback(jqXHR) }).fail(function(jqXHR, textStatus, errorThrown) { oncallback(jqXHR) }) function oncallback(jqXHR) { //返回全部头信息,string var all_headers = jqXHR.getAllResponseHeaders(); //获取服务端的时间并强制格式化为东八区时间 var time_zone = 8; //默认时区设定为东八区 var date_obj = new Date(server_time); var server_time = jqXHR && jqXHR.getResponseHeader("Date");//注意默认为GMT-0格林尼治标准时间 var offset_GMT = date_obj.getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟 var nowDate = date_obj.getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数 var date_time_now = new Date(nowDate + offset_GMT * 60 * 1000 + time_zone * 60 * 60 * 1000); console.log('本地时间/本机时间: ' + new Date()); console.log('服务端格林尼治标准时间: ' + server_time); console.log('服务端当前时区时间: ' + date_time_now); var timestamp_local = parseInt(new Date().getTime()/1000); //本地时间转时间戳 var timestamp_server = parseInt(date_time_now.getTime()/1000); //服务端时间转时间戳 //资源类型 var content_type = jqXHR && jqXHR.getResponseHeader('Content-Type'); console.log('请求资源类型: ' + content_type); } //输出 //本地时间/本机时间: Mon Dec 02 2019 18:17:07 GMT+0800 (中国标准时间) //服务端格林尼治标准时间: Tue, 03 Dec 2019 10:17:11 GMT //服务端当前时区时间: Tue Dec 03 2019 18:17:11 GMT+0800 (中国标准时间) //PS:出于测试本地时间特意调慢1天。 ``` 本文最后更新于 2019-12-03 18:26:55 并被添加「jquery ajax」标签,已有 13218 位童鞋阅读过。 本文作者:未来往事 本文链接:https://felixway.cn/post/671.html 本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处 相关文章 jquery图片加链接 js/jQuery监听网页回车事件 form表单提交 批量删除/复原 批量选中js jQuery error()替换载入错误的图片 jQuery移除class对应绑定的事件
此处评论已关闭