【问题标题】:Ajax response always returns 2 after first callAjax 响应在第一次调用后总是返回 2
【发布时间】:2013-07-26 09:40:34
【问题描述】:

我正在尝试使用 Ajax 从我的数据库中获取更新的 num。
主要功能是:

function checkInvitations() {
    if (username ="-1") {
        username = document.getElementById("username").value;
    }
    req.open('GET', 'check_num_of_invitations.php?username='+username);
    req.onreadystatechange = handleNumOfInvitationsResponse;
    req.send(null);
}

函数从 HTML 文件中调用 ...
被调用函数(handleNumOfInvitationsResponse):

function handleNumOfInvitationsResponse() {
if(req.readyState == 4) {
    // update div in HTML
} else {
    // update div in HTML
}
setTimeout(function(){checkInvitations();}, 5000);

}

注意对checkInvitations 的递归调用。

第一次尝试时,响应返回 4,一切正常,从那里返回 2。
谢谢

【问题讨论】:

  • 你能告诉我们给出响应的代码吗?
  • if (xmlhttp.readyState==4 && xmlhttp.status==200)...为什么只有 4 个??

标签: javascript ajax response


【解决方案1】:

我在 Internet Explorer 9 中遇到了类似的问题,我通过在查询字符串中附加时间戳来解决它:

 var url = 'check_num_of_invitations.php?username='+username+'&timestamp='+Date.now();
 req.open('GET', url);

【讨论】:

  • 感谢您的回答,但为什么会有帮助?顺便说一句,它已经过 Chrome 测试。
  • 可能是缓存的原因,但是chrome没问题。没有帮助:(
猜你喜欢
  • 1970-01-01
  • 2014-03-17
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多