当前位置: 首页 > 知识库问答 >
问题:

为什么彼此中的多个ajax请求不执行?

亢建白
2023-03-14

我内部有多个ajax函数,但只执行第一个ajax请求,我不知道为什么!我添加了一些警告字段,看看它有多远。我使用的是django环境。例如,当单击bidnow-BTN时,这个jquery应该执行,但由于某种原因,在第一个ajax请求之后,页面实际上会刷新并在页面url的末尾添加类似/?bidprice=100001的内容。这是不应该发生的。

$("#bidnow-BTN").click(function () {
  var varurl = document.URL
  var itemId = varurl.split(/\//)[4]

  $.ajax({
    url: "{% url 'User ID' %} ",
    method: "GET",
    success: function (data) {
      var varurl = document.URL
      var itemId = varurl.split(/\//)[4]
      var username = data.username
      alert("Got here: " + username)

      $.ajax({
        url: "{% url 'Bidding ID' %} ",
        method: "GET",
        success: function (data) {
          alert("Does NOT reach this point")
          for (var i = 0; i < data.users.length; i++) {
            if (data.users[i].username == username) {
              var id = data.users[i].id
            }
            else {

            }
          }


          $.ajax({ // kinda checked
            url: "{% url 'List Items' %} ",
            method: "GET",
            success: function (data) {
              var varurl = document.URL
              var itemId = varurl.split(/\//)[4]
              for (var i = 0; i < data.items.length; i++) {
                if (itemId == data.items[i].id) {
                  var currentPrice = data.items[i].higestBid
                }
                else {

                }
                if (parseFloat($('#bidAmount').val()) <= currentPrice) {
                  alert("Please enter a higher amount")
                  abort()
                }

                if (parseFloat($('#bidAmount').val()) > currentPrice) {

                  var post_data = {
                    'itemId': itemId,
                    'userID': id,
                    'bid': (parseFloat($('#bidAmount').val()) || 0)
                  };

                  $.ajax({ //checked
                    url: "{% url 'Modify Bid' %} ",
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    method: "PUT",
                    data: JSON.stringify(post_data),
                    success: function (data) {
                      $('#ItemCurrentPrice').empty()
                      $('#ItemCurrentPrice').append("£" + data.highestBid)





                      $.ajax({ //checked
                        url: "{% url 'Bidding ID' %} ",
                        method: "GET",
                        success: function (data) {
                          for (var i = 0; i < data.users.length; i++) {
                            if (data.users[i].username == username) {
                              var id = data.users[i].id
                            }
                            else {

                            }
                          }
                          var post_data = {
                            'itemId': itemId,
                            'userID': id,
                            'bid': (parseFloat($('#bidAmount').val()) || 0)
                          };
                          $.ajax( //checked
                            {
                              url: "{% url 'List Bid' %} ",
                              contentType: 'application/json; charset=utf-8',
                              dataType: 'json',
                              method: "PUT",
                              data: JSON.stringify(post_data),
                              success: function (data) {

                              }
                            }) //Checked




                        }
                      })  //Checked

                    }
                  })  //Checked
                }
              }
            }
          })

        }
      })
    }
  })
})

共有1个答案

李胡媚
2023-03-14

尝试在ajax中添加async:false事件

$.ajax({ 
type: "POST",
url: "file.php",
async: false,
data: { code: code },
success: function(response){ },
error: function(xhr, ajaxOptions, thrownError){
    alert(thrownError);
}
});
 类似资料:
  • 问题内容: 似乎以下代码应返回true,但返回false。 这有什么意义? 问题答案: 常规()和严格()相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。 不管您使用常规相等还是严格相等,对象比较仅 在您比较相同的精确对象时得出 。 也就是说,给定,,,但。 两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进

  • 问题内容: 以下是ajax请求。 这就是delete.php 运行代码后,它将成功删除文件,但不会显示任何消息。 我也尝试将ajax请求更改为: 仍然不显示该消息。所以我想在delete.php文件中出了点问题。请帮忙。 问题答案: 进行jquery + ajax + php的最佳方法如下: jQuery的: PHP:

  • 问题内容: 我有多个透明实例,我想彼此叠加(也称为Photoshop层)并烘焙成一个输出。我该怎么做呢? 问题答案: 我会说最好的选择是拍摄缓冲的图像,并创建一个附加图像,以便将一个对象附加到该图像上。然后,只需使用Graphics.drawImage()将它们放置在彼此的顶部。 因此,遵循以下原则:

  • 我正在尝试设置Azure Application Insights以监视Azure App Services中承载的ASP.NET Core Web App和Web API的以下指标的性能计数器: null 我相当肯定Application Insights的配置是正确的,因为我可以看到门户中显示的其他度量。是不是有什么原因,这些特定的度量似乎没有出现?我甚至尝试使用一个默认的ASP.NET核心模

  • 在我们的应用程序中,我们需要实现以下场景: 从客户端发送请求 服务器处理请求并生成文件 服务器返回文件作为响应 客户端浏览器显示文件下载弹出对话框,允许用户下载文件 我们的应用程序是基于ajax的应用程序,因此发送ajax请求(如使用jquery.ajax()函数)将非常简单方便。 但是在googilng之后,事实证明文件下载只有在使用非ajax POST请求时才是可能的(就像在这个流行的SO线程

  • 问题内容: 我发现真正令人困惑的是,为什么AJAX请求限于同一域?这背后的原因是什么? 我从外部位置请求文件没有任何问题,发出XMLHTTP请求的服务器似乎也可以很好地发送和发布到外部位置。 问题答案: 图片如下: 您来到我神话般的网站www.halfnakedgirls.com。您很乐意观看看起来像人类生理学的技术文档,但是在您的背后,一些JavaScript行正在向另一个域执行某些请求,比如说