AJAX和PHP将“HTTP get request”发送到同一页面

时间:2017-04-16 19:04:31

标签: javascript php ajax

我的应用程序通过JavaScript收集一些客户端相关信息,并通过AJAX将其提交到php页面。

请参阅以下代码:

的index.php

<html>
<head>
    <script>
        function postClientData(){
            var client_data = new Array(screen.availHeight, screen.availWidth);
            var xmlhttp = new XMLHttpRequest();

            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    if(this.responseText == client_data[0]){
                        document.getElementById("message").innerHTML = "Client data successfully submitted!";
                    }

                }
            };

            var parameters = "ajax.php?screen_height=" + client_data[0] + "&screen_width=" + client_data[1];
            xmlhttp.open("GET", parameters, true);
            xmlhttp.send();
        }
    </script>
</head>

<body onload="postClientData()">
    <span id="message"></span></p>
</body>

</html>

ajax.php

<?php
echo $_REQUEST["screen_height"];
//Does something else...
?>

我想知道是否可以将ajax.php内容合并到我的index.php并删除ajax.php。当我尝试添加代码时,我可能会进入无限循环,因为我没有收到“成功”消息。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正确,IMO我肯定会将此特定逻辑分开在ajax.php文件中。

如果您确实想要合并,请将其添加到index.php的顶部(在打印数据之前):

if (isset($_GET['screen_height'])) && isset($_GET['screen_width']) {
    // Execute specific logic and exit to prevent sending the HTML.
    exit;
}