使用AJAX执行PHP脚本而不使用POST / GET?

时间:2015-08-31 20:04:22

标签: php jquery ajax

我正在尝试点击<div>执行一个简单的PHP脚本。我一直在搜索SO,并且出现了一些类似的问题,但是当我没有数据发布时,所有问题都涉及发布数据。

<div name="logout">
    logout
</div>
<script>
    $(document).ready(function() {
        $('div[name="logout"]').click(function() {
            $.ajax({
                url: './scripts/logout.php',
                dataType: 'json'
            }).done(function(result) {
                alert(result.message);
            });
        });
    });
</script>

logout.php如下:

if (isset($_SESSION["username"]) && (isset($_SESSION["logintoken"]))) {
    session_destroy();
    $jsonArr = array('success' => true, 'message' => "You've logged out.");
    echo json_encode($jsonArr);
} else {
    $jsonArr = array('success' => false, 'message' => "You're not logged in.");
    echo json_encode($jsonArr);
}

没有警告点击,控制台显示没有错误。每次都会向AJAX调用添加.fail条件,但控制台中没有任何内容。

所有其他时间我使用AJAX来处理表单,而不是这个确切的情况。我没有数据要发布或获取,并且SO上的大多数解决方案都说要向AJAX调用添加data: {}位,但我没有任何内容可以放在这里。

我在这里做错了什么?跟踪我的代码,我想我可能正在重新初始化$_SESSION变量,但我没有。

2 个答案:

答案 0 :(得分:1)

试试这个

<script>
    $(document).ready(function() {
        $('#logoutBtn').click(function() {
            $.ajax({
                url: './scripts/logout.php',
                dataType: 'json'
            }).done(function(result) {
                alert(result.message);
            });
        });
    });
</script>
<div id="logoutBtn">
    logout
</div>

答案 1 :(得分:0)

<div>没有name。这是表单字段。尝试

<div class="logout">
      ^^^^^^^^^^^^
...
        $('div.logout').click(function() {
           ^^^^^^^^^^

代替。