为什么我会先收到第二个请求?没有任何价值

时间:2014-01-18 06:43:35

标签: php jquery ajax

我发送了一个ajax请求以从库中检索图像名称并更新请求者页面中的ID。当我收到回复后,我得到两个回复,如下,

GET http://domain.com/testme/gallery/dynLoad.php?id=159 200 OK 14ms <br>
GET http://domain.com/testme/gallery/dydLoad.php 404 Not Found 4ms
  1. 第一个响应是预期的,它包含所需的响应。通过萤火虫检查。
  2. 我也在第一个回复后立即得到找不到对象!响应。

    $("#show").click(function (){
      $(".wrapper").show('fold', 1000);
      $.ajax({
        type: "GET",
        url:"dynLoad.php",
        data: "id="+ <?php echo $id; ?>,
        success: function(){
          $("#gallery").load("dydLoad.php #galleryLoad");
        }
      });
    });
    
  3. 当我将 .ajax()修改为 .get()时,我仍会收到相同的回复,但我收到未找到我从之前的GET得到的回应相同。我再次在下面添加了这些回复:

    GET http://domain.com/testme/gallery/dynLoad.php?id=159 200 OK 13ms
    GET http://domain.com/testme/gallery/dynLoad.php 200 OK 2ms

    产生上述响应的代码是:

    $.get("dynLoad.php", {id: "<?php echo $id; ?>"})
            .done(function () {
                $("#gallery").load("dynLoad.php #galleryLoad");
            });
    

    我不明白应该发生什么?任何人都有理由这样做吗?

2 个答案:

答案 0 :(得分:0)

http://api.jquery.com/on/

    $(document).on('click',"#show",function (){ //
        $(".wrapper").show('fold', 1000);
        $.ajax({
            type: "GET",
            url:"dynLoad.php",
            data: "id="+ <?php echo $id; ?>,
            success: function(){
                $("#gallery").load("dydLoad.php #galleryLoad");
            }
        });
    });

答案 1 :(得分:0)

尝试这样的事情

$("#show").click(function (){
  $(".wrapper").show('fold', 1000);
  $.ajax({
    type: "GET",
    url:"dynLoad.php",
    data: "id="+ <?php echo $id; ?>,
    success: function(response){
      $("#gallery").load(response);
    }
  });
});

<强>原因

您的两个请求如下

  1. 使用jquery ajax()
  2. 解雇
  3. 在ajax成功完成load()
  4. 成功方法后解雇
      

    加载方法是从服务器获取数据的最简单方法。它大致相当于$ .get(url,data,success)

    其他解决方案

    $("#show").click(function (){
        $( "#result" ).load( "dynLoad.php",  {id: "<?php echo $id; ?>"} );
    });