8

我有一个 ajax 帖子,但它被取消了。我刚刚制作了一个test.php应该echo 'test';有价值的文件。

这就是我的 ajax 脚本的样子:

function loadAd(date) {
    var ajax_url = '<?=URL?>components/ajax/grab_ads.php';
    $.ajax({
        type: 'POST',
        url: ajax_url,
        dataType: 'html',
        data: ({
            date : date
        }),
        cache: false,
        success: function(data) {
            if(data > 0) {
                $('.advert').fadeIn("fast");
            }       
        },
        error: function(xhr, textStatus, errorThrown) {
            //alert('Nastala chyba. ' + errorThrown);
        }
    });
}

该函数被调用,我尝试控制台记录它。变量也可以通过。这就是我在 chrome 网络选项卡中得到的。截屏

除此之外,我很无助。

编辑:我这样调用函数:

$datum = Date("d-m-Y H:i:s");

$adl .= '<script type="text/javascript">
              loadAd(\''.$datum.'\');
         </script>';
4

2 回答 2

14

我们从链接发出 ajax 请求,而不是阻止链接被跟踪。因此,如果您在 onclick 属性中执行此操作,请确保返回 false;以及

 function loadAd(date) {
  var ajax_url = '<?=URL?>components/ajax/grab_ads.php';
  $.ajax({
    type: 'POST',
    url: ajax_url,
    dataType: 'html',
    data: ({
        date : date
    }),
    cache: false,
    success: function(data) {
        if(data > 0) {
            $('.advert').fadeIn("fast");
        }       
    },
    error: function(xhr, textStatus, errorThrown) {
        //alert('Nastala chyba. ' + errorThrown);
    }
 });
 return false;
 }
于 2013-05-16T10:45:39.363 回答
0

检查触发AJAX调用HTML element的事件是由哪个事件触发的。

如果是输入按钮,请确保它应该是 type button' <input type="button" />和 usereturn语句。

如果是anchor标签,请尝试使用 return 语句: returntruefalse.

确保页面在AJAX调用完成时不会刷新。如果您使用提交类型的输入字段,它将提交表单并导致页面刷新,并且请求被取消。

于 2018-08-20T15:09:48.750 回答