Javascript jQuery AJAX只调用一次回调

Javascript jQuery AJAX只调用一次回调,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的updateMyApps中的jQueryget函数没有被正确调用,出现了这个问题。我在声明函数后立即调用该函数,这非常有效。它循环遍历数据并将元素附加到DOM中 但是当我提交表单#addapplicationform时,它运行的jQuery post函数工作正常,但是updateMyApps函数在这种情况下似乎工作不正常 console.log(“测试”)似乎总是被调用。即使在提交表格时。但是由于某些原因,get请求的回调函数在页面加载时只调用一次 <script> functi

我的
updateMyApps
中的jQuery
get
函数没有被正确调用,出现了这个问题。我在声明函数后立即调用该函数,这非常有效。它循环遍历数据并将元素附加到DOM中

但是当我提交表单
#addapplicationform
时,它运行的jQuery post函数工作正常,但是
updateMyApps
函数在这种情况下似乎工作不正常

console.log(“测试”)似乎总是被调用。即使在提交表格时。但是由于某些原因,get请求的回调函数在页面加载时只调用一次

<script>
function updateMyApps() {
    console.log("Test"); //Always works
    $.get("/api/clients", function(data) {
        console.log(data); //Works first time
        $("#myapps").html("<h4>My Applications</h4>");
        data.forEach(function (item) {
            var element = '<div>' + item.name + '</div>' + '<div>' + item.id + '</div>' + '<div>' + item.secret + '</div>' + '<a href="/edit"><input type="submit" class="submit btn btn-primary form-control" value="Edit" style="width: 100px;"></a>';
            $("#myapps").append(element);
        });
    });
}
updateMyApps(); // Works perfectly

$("#addapplicationform").submit(function( event ) {
  event.preventDefault();
  $.post("/api/clients", $( "#addapplicationform" ).serialize(), function () {
    updateMyApps(); //Doesn't work
  });
});
</script>

函数updateMyApps(){
console.log(“Test”);//始终有效
$.get(“/api/clients”,函数(数据){
console.log(数据);//第一次工作
$(“#我的应用程序”).html(“我的应用程序”);
data.forEach(功能(项){
var元素=“”+item.name+“”+item.id+“”+item.secret+“”+;
$(“#myapps”)。追加(元素);
});
});
}
updateMyApps();//完美地工作
$(“#添加应用程序表单”).submit(函数(事件){
event.preventDefault();
$.post(“/api/clients”,$(“#addapplicationform”).serialize(),函数(){
updateMyApps();//不起作用
});
});
你知道为什么get请求回调只触发一次吗

编辑

忘了提这件事了。看起来只有在页面加载时才会调用GET
/api/clients
。当提交表单时,它甚至没有击中我的后端

编辑2


意识到这是一个缓存问题。添加
$.ajaxSetup({cache:false})似乎已经解决了这个问题。还将该问题标记为与我在何处找到该代码片段的问题重复。

尝试在提交中添加一个console.log

<script>
function updateMyApps() {
    console.log("Test"); //Always works
    $.get("/api/clients", function(data) {
        console.log(data); //Works first time
        $("#myapps").html("<h4>My Applications</h4>");
        data.forEach(function (item) {
            var element = '<div>' + item.name + '</div>' + '<div>' + item.id + '</div>' + '<div>' + item.secret + '</div>' + '<a href="/edit"><input type="submit" class="submit btn btn-primary form-control" value="Edit" style="width: 100px;"></a>';
            $("#myapps").append(element);
        });
    });
}
updateMyApps(); // Works perfectly

$("#addapplicationform").submit(function( event ) {
  event.preventDefault();
  console.log("works!!!"); // <-- add this console.log
  $.post("/api/clients", $( "#addapplicationform" ).serialize(), function () {
    updateMyApps(); //Doesn't work
  });
});
</script>

函数updateMyApps(){
console.log(“Test”);//始终有效
$.get(“/api/clients”,函数(数据){
console.log(数据);//第一次工作
$(“#我的应用程序”).html(“我的应用程序”);
data.forEach(功能(项){
var元素=“”+item.name+“”+item.id+“”+item.secret+“”+;
$(“#myapps”)。追加(元素);
});
});
}
updateMyApps();//完美地工作
$(“#添加应用程序表单”).submit(函数(事件){
event.preventDefault();

console.log(“works!!!”);//是的,console.log可以工作。但这并不能回答我的问题。
updateMyApps
中的
get
回调函数仍然没有被调用。我只是想看看你的错误……为了调试,如果你添加一个console.log()在你的$.post中?它有效吗?是的。post被调用。
updateMyApps
被调用。
console.log(“测试”);
每次都会被调用。但是
get
回调只会被调用一次,而不是两次。它应该在页面加载和表单提交时被调用。您是否检查了服务器端没有收到任何错误?是否在网络选项卡的控制台上触发了$.get?它看起来甚至没有击中我的服务器。试试这个,然后再试一次检查失败处理程序是否被激发…$.get(“/api/clients”,函数(数据){}).fail(函数(){alert(“error”);});甚至没有调用
.fail
函数。尝试检查是否至少真的调用了$.get(“/api/clients”,函数(数据){}).fail(函数(){alert(“error”);});