当前位置: 首页 > 面试题库 >

Ajax请求什么都不返回。为什么?

华善
2023-03-14
问题内容

以下是ajax请求。

$.post('delete.php', {'deletearray':deletearray, 'dir':dir}, function(deleted, undeleted){
    if(undeleted == 0) {
        alert('All ' + deleted + ' files delted from the server');
    } else {
        alert(deleted + ' files deleted and ' + undeleted + ' files could not be deleted');
    }
}, 'json');

这就是delete.php

<?php
    if(isset($_POST['deletearray'])) {
        $files = $_POST['deletearray'];
        $dir = $_POST['dir'];
        $deleted = 0;
        $undeleted = 0;

        foreach($files as $file) {
            if(unlink($dir.$file) && unlink($dir.'thumb/'.$file)) {
                $deleted ++;
            } else {
                $undeleted ++;
            }
        }
        echo json_encode($deleted, $undeleted);
    }
    return;
?>

运行代码后,它将成功删除文件,但不会显示任何消息

我也尝试将ajax请求更改为:

 $.post('delete.php', {deletearray:deletearray, dir:dir}, function(deleted, undeleted){
    alert("php finished");
 }, 'json');

仍然不显示该消息。所以我想在delete.php文件中出了点问题。请帮忙。


问题答案:

进行jquery + ajax + php的最佳方法如下:

jQuery的:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">

function do_ajax() { 
        //set data
        var myData  = new Array();
        myData.push({name:'deletearray',value:'deletearray'});
        myData.push({name:'dir',value:'dir'});
        //ajax post
        $.ajax({
            dataType: 'json',
            url: 'delete.php',
            type: 'post',
            data: myData,
            success: function(returnData) {
                if(returnData.undeleted == 0) {
                    alert('All ' + returnData.deleted + ' files delted from the server');
                } else {
                    alert(returnData.deleted + ' files deleted and ' + returnData.undeleted + ' files could not be deleted');
                }
            }
        });
}            
</script>

PHP:

<?php
    $myData = $_POST;
    if(isset($myData['deletearray']) AND isset($myData['dir'])) {
        $files = $myData['deletearray'];
        $dir = $myData['dir'];
        $deleted = 0;
        $undeleted = 0;

        foreach($files as $file) {
            if(unlink($dir.$file) && unlink($dir.'thumb/'.$file)) {
                $deleted ++;
            } else {
                $undeleted ++;
            }
        }
        print(json_encode(array('deleted' => $deleted, 'undeleted' => $undeleted)));
        exit();
    }
?>


 类似资料:
  • 问题内容: 我正在尝试使用一个字段来获取手动输入,然后使用该数据。 我发现的所有资料都声称我应该使用该函数,但是我还没有找到一个简单的可运行的迷你示例,因此无法正常工作。 我希望有人可以给我打电话,告诉我我做错了什么。这是一个迷你文件: 这给了我一个我可以输入的字段,但是一旦输入数据我就什么也不能做。 我怀疑我的代码不起作用,因为最初它是空的。但是,一旦输入了输入数据,我该如何访问呢? 问题答案:

  • 问题内容: 我正在尝试使用一个字段来获取手动输入,然后使用该数据。 我发现的所有资料都声称我应该使用该函数,但是我还没有找到一个简单的可运行的迷你示例,因此无法使用它。 我希望有人可以给我打电话,告诉我我做错了什么。这是一个迷你文件: 这给了我一个我可以输入的字段,但是一旦输入数据我就什么也不能做。 我怀疑我的代码不起作用,因为最初它是空的。但是,一旦输入了输入数据,我该如何访问呢? 问题答案:

  • 问题内容: 我正在使用$ .ajax发出ajax请求。响应具有标题集(我已经在Chrome开发工具中对此进行了验证)。但是,浏览器在收到响应后 不会 设置cookie!当我导航到域中的另一个页面时,不会发送cookie。(注意:我没有执行任何跨域ajax请求;该请求与文档位于同一域中。) 我想念什么? 编辑 :这是我的ajax请求的代码: 这是请求,如Chrome开发者工具所示: 响应: 问题答案

  • 问题内容: 我编写了以下函数,以实现自己的二进制搜索 我知道我的实现已经关闭,但是我对理解递归堆栈更加好奇。 当我调用时,我的函数应返回的值 但相反,它返回None。此外,当我直接调用时 ,我得到的正确值为0。这怎么可能? 问题答案: 您将忽略递归调用的返回值。您还需要 显式地 返回它们: 递归调用与其他任何函数调用一样;他们将结果返回给调用者。如果忽略返回值,然后调用函数结束,那么您将以该调用函

  • 问题内容: 我一直在从jquery收到针对Ajax请求的“ parsererror”,我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但是我似乎无法弄清楚问题出在哪里。 我的项目在MVC3中,我使用的是jQuery 1.5,我有一个Dropdown,并在onchange事件上触发了一个调用,以基于所选内容获取一些数据。 下拉列表:(这会从Viewbag的列表中加载“ Views

  • 问题内容: 我正在通过以下方式从Java代码启动Windows进程(用C ++编写,但没有源代码): 我的问题是,waitFor()方法永远不会结束。因此,我尝试在一个简单的shell中启动该过程,并以shell中的许多打印正确结束(我猜是标准输出)。 因此,即使我现在不需要这些输出,我还是决定创建并启动一个读取标准输出的线程。这解决了问题。 因此,我的问题是以下问题:该解决方案是“启动并等待具有