javascript - AJAX 调用 PHP 脚本不输出任何结果

标签 javascript php ajax

我正在尝试通过 AJAX 更新我的推文列表。我已经在页面上运行了脚本并且知道该脚本有效,并且我的 ajax 调用中有一个 console.log 行,所以我知道它也受到了影响。

    setInterval(function () {sendRequest()}, 5000);

    function sendRequest(){
        var xmlhttp;

        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200){
                console.log("yay");
            }
        }

        xmlhttp.open("GET","getTweets.php",true);
        xmlhttp.send();

    }

我的 AJAX 应每 5 秒运行一次,然后点击 PHP 脚本以返回已存储在数据库中的新结果。我的 PHP 看起来像:

$conn = mysqli_connect("localhost", "*", "*", "*");

if (!$conn) {
    echo("Connection failed: " . mysqli_connect_error());
}

$query = "SELECT * FROM tweets;";

$results = mysqli_query($conn, $query);

while($list = mysqli_fetch_assoc($results)){

echo '<div class="tweet-containter">';

echo '<img class="user-img" alt="user-img" src="images/gb.png">';
echo '<h3 class="tweet-username">@'.$list['username'].'</h3>';
echo '<p class="tweet-body">'.$list['tweetBody'].'</p>';   
echo '<p class="tweet-body">Tweeted: '.$list['datePosted'].'Retweet: <i class="fa fa-retweet" id="retweet4" onclick="retweetAJAX()"></i> Like: <i class="fa fa-thumbs-up" id="likes4" onclick="likeAJAX()"></i> Dislike: <i class="fa fa-thumbs-down" id="dislikes4" onclick="dislikeAJAX()"></i></p>';

echo '</div>';

}

最佳答案

这适用于那些不理解 ReadyState 代码的人。你应该知道以下 ReadyState 代码:

0: request not initialized 
1: server connection established
2: request received 
3: processing request 
4: request finished and response is ready

和状态码

200: "OK"
404: Page not found

话虽如此,尝试这样做:

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
       if(xmlhttp.status == 200){
           console.log(xmlhttp.responseText);
       } else if(xmlhttp.status == 400) {
          alert('There was an error 400')
       } else {
           alert('something else other than 200')
       }
    }
}

关于javascript - AJAX 调用 PHP 脚本不输出任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056713/

相关文章:

jquery - 使用ASP.NET MVC进行jquery-调用启用了Ajax的Web服务

javascript - getElementById 在一种环境中有效,但在另一种环境中无效

Javascript 如何访问加载了 jQuery 的 HTML 文件中的元素

javascript - Jquery某些单选按钮返回true

php - Laravel 5.1 cron 在 OVH 中不工作

php - 使用 Jquery Ajax 后 mootools AJAX 出现问题

ajax - Promise 和 AJAX 有什么区别?

javascript - 在表单提交时将 JavaScript 日期数组绑定(bind)到页面的 View 模型

php - 使用表单外的按钮提交表单并触发 jQuery 验证

javascript - 将 AJAX json 数据传递给 D3