通过原生js的ajax方法获取服务器时间(可用于抢购倒计时显示)

1:通过控制器获取服务器时间返回到前台正确显示(这是一种通用的方法,也是大家一般会直接想到的);
2:利用JS请求在 HTTP header 头里带一个Date的头部信息,用Ajax直接取头部信息里的Date就可获取服务器时间
原生写法:

var xhr = new XMLHttpRequest();  

if( !xhr ){  

   xhr = new ActiveXObject("Microsoft.XMLHTTP");  

}  

xhr.open("HEAD",location.href,true);  

xhr.onreadystatechange=function(){  

if( xhr.readyState == 4 && xhr.status == 200 ){  

         alert(xhr.getResponseHeader("Date"));  

    }  

}  

xhr.send(null); 

jquery写法

var time;

$.ajax({type:'HEAD', async: true})

 .success(function(data, status, xhr){

   time=xhr.getResponseHeader('Date');

 });

PS:可能会有问了,ajax请求http这样的话 跟通过控制器获取服务器时间有啥区别么,同样要消耗一次请求,并且每次都会有服务器正文返回。
但是呢:常见的Ajax请求方法为GET,POST而这两种请求都可能会返回正文体,而发HEAD头则只会返回对应的头信息,不会有正文,且只要javascript可以执行,就可以取当前域的地址作为请求地址,有一定的通用性,且避免了跨域的问题

你可能感兴趣的:(javascript,php)