$ .post仅在Chrome中正常使用一次(正常)但始终处于隐身模式

时间:2015-01-04 15:45:13

标签: jquery ajax

<a id="ad_server_ad" name="1" href="http://google.com">
<img src="xyz.png"></a>

以上是我的HTML代码:

这是我的js代码:

$(document).ready(function(){

$('a#ad_server_ad').click(function() {
    var name = this.name;

$.post("ajax_test.php",{ test:name },function(data){
                alert(data);
        });


});});

这是我的ajax_test.php

if(isset($_REQUEST['test']))
{
    echo "Call made successfully" . $_REQUEST['test'];
}

代码对于第一个ajax调用完全正常,但之后当我再次打开页面并再次单击图像时,ajax调用被取消,如networks / XHR所示。 如果我等了几分钟它再次工作,但只是一次。

现在如果我在隐身模式下使用相同的代码,它适用于所有连续点击。 我是ajax和jquery的新手所以请帮助我。

2 个答案:

答案 0 :(得分:0)

据我所知,它可能涉及浏览器缓存。尝试为每个请求添加一个随机数,即&#34; ajax_test.php?12345&#34;。

这应该欺骗浏览器不缓存请求。请检查此答案:Prevent browser caching of jQuery AJAX call result

答案 1 :(得分:0)

编辑: 听起来不相关的答案,我想不出这可能与所描述的行为有什么关系......

你应该防止锚点击的defaut行为:

$(document).ready(function () {
    $('a#ad_server_ad').click(function (e) {
        e.preventDefault(); // prevent click anchor default behaviour
        var name = this.name;
        var self = this;
        $.post("ajax_test.php", {
            test: name
        }, function (data) {
            alert(data);
            // to redirect, you could use:
            window.location = self.href;
        });
    });
});