Javascript 如何每6小时执行一次功能?

Javascript 如何每6小时执行一次功能?,javascript,Javascript,我需要每6小时刷新一次令牌,这样我就可以使用API而无需再次登录 我试着这样做: setInterval(function(){ var code = window.location.href.split("=").pop(); var xhr = new XMLHttpRequest(); xhr.open("POST", "https://api.mercadolibre.com/oauth/token?grant_type=authoriza

我需要每6小时刷新一次令牌,这样我就可以使用API而无需再次登录

我试着这样做:

setInterval(function(){
      var code = window.location.href.split("=").pop();      
      var xhr = new XMLHttpRequest();
      xhr.open("POST", "https://api.mercadolibre.com/oauth/token?grant_type=authorization_code&client_id="+appID+"&client_secret="+secretKey+"&code="+code+"&redirect_uri="+redirectUri, true);
      xhr.onload = function () {    
        console.log(xhr.responseText);
      };
      xhr.send();
    }    
}, 21600);

您用
jQuery
标记了您的问题,因此我假设您可以使用它。 而且
2160000
是6小时,而不是
21600

setInterval(function() {
 $.ajax({
    type: "POST",
    url: url,
    dataType : "text",
    data: data,
    cache: false,
    timeout: 3000,
    success: function (data) {
        alert("SUCCESS");
        console.log(data);
    },
    error: function (e) {
        alert(e);
    }
  });
}, 21600000);
或者使用
bind
的更混乱的解决方案:

setInterval($.ajax.bind($, {
  type: "POST",
  url: url,
  dataType : "text",
  data: data,
  cache: false,
  timeout: 3000,
  success: function (data) {
      alert("SUCCESS");
      console.log(data);
  },
  error: function (e) {
      alert(e);
  }
}), 21600000);

有什么问题/不起作用?另外,您的代码中没有使用任何jquery。我假设浏览器将连续打开6小时,保持在同一页面上,没有页面转换?
21600
不是6小时使用
POST
时,您应该将数据作为参数添加到
xhr.send
调用中。此外,计时器需要毫秒,目前您每21.6秒发布一次。请回顾您的概念,实际上没有页面将保持打开6小时并等待令牌刷新。从服务器发送令牌过期时间(创建令牌时,在服务器端添加6小时并返回时间戳),然后在客户端检查现在是否大于过期时间戳,然后刷新