Javascript 如何每6小时执行一次功能?
我需要每6小时刷新一次令牌,这样我就可以使用API而无需再次登录 我试着这样做: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
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小时并返回时间戳),然后在客户端检查现在是否大于过期时间戳,然后刷新