如何多次提出请求而无需使用ajax进行硬刷新

时间:2018-12-29 14:58:34

标签: javascript php jquery ajax

我通过ajax发送删除文件的请求。第一次,ajax处理请求,但是第二次没有任何人。我得到了“硬刷新”

这是我的代码:

 "scripts": {
"ng": "ng",
"start": "ng serve",
"gzipper": "gzipper",

要立即查看我的文件已被删除,请使用此行 <?php if(isset($_POST['deletefile'])) { // if is directory -> remove dir if(is_dir($_POST['deletefile'])){ removeDirectory($_POST['deletefile']); exit; } // else (must be a file) -> unlink file else { unlink($_POST['deletefile']); exit; } } ?> <div class="myFiles"> <form class="sfmform" method="post" action=""> <input type="hidden" name="deletefile" value="<?php echo $dir.'/'.$file; ?>" /> <input type="submit" class="sfmdelete" name="delete" value=" " /> </form> <script> $(".sfmform").on('submit',(function(e) { e.preventDefault(); $.ajax({ url: "", type: "POST", data: new FormData(this), contentType: false, processData: false, success: function(response) { $('.myFiles').load(document.URL + ' .myFiles'); }, }); })); </script> </div> <!-- END myFiles -->

第一个删除请求很好,但是第二个:他进行了一次强制刷新,死在php循环中。我希望在php中的$('.myFiles').load(document.URL + ' .myFiles');之后执行行exit,但是第二次不再加载$('.myFiles').load(document.URL + ' .myFiles');

我如何使其正常工作?

即使我将js放入就绪处理程序中,它也不起作用! 我在php中使用<div class="myFiles>的原因:否则exit会在彼此之下出现2次

1 个答案:

答案 0 :(得分:1)

您更改了html中的.myFiles,因此第二次动态生成了其中的所有内容。所以您需要Event binding on dynamically created elements? ..更改

$(".sfmform").on('submit',(function(e) {

$(document).on('submit' , ".sfmform" , (function(e) {

注意: 对我来说最好不要将$.ajax与相同文件url:一起使用对我来说 制作一个单独的文件