在加载新页面之前,Ajax调用未运行

时间:2012-04-29 21:38:11

标签: jquery html http get analytics

也许我在这里错过了一些简单的东西,但令我感到沮丧。因此,我需要做的是在点击链接的这个div时更新我的​​服务器上的内容(我正在点击分析)。我想我会做一个点击事件并做一个ajax调用(通过get)。

$.get("stat/418491289);

但问题是,呼叫没有进行。用户被发送到下一页并且未调用get调用未完成/调用。我知道,因为在服务器上它会更新数据库。也许我不应该做一个ajax电话,或者也许我应该做的事情,但我不确定。我暂时不能暂停链接操作,因为它包含在div中。理想情况下,我想做的就是解雇请求然后不用担心。更新统计数据并不重要,因此如果它在1%的时间内不起作用,那就更好了。我该怎么做?

我想我可能不清楚。我要问的是:在浏览器进入链接页面之前,我可以通过javascript向我的服务器发出请求吗?我不在乎响应是什么,我只需要发送请求。

3 个答案:

答案 0 :(得分:2)

如果我清楚地理解了这个问题,你需要使用preventDefault来取消链接的默认行为,如

$("#linkID").click(function(e){
 e.preventDefault();
 //ajax call here
});

或提出return false;

$("#linkID").click(function(){

     //ajax call here
     return false;
    });

答案 1 :(得分:1)

您是否检查过该页面的网络流量,以查看是否完全收到了get请求(与服务器没有处理)?也许网址不对,你回复了404回复。

也可能是您处理点击事件的方式。如果您正在从div单击处理程序发出ajax请求,并且用户正在单击链接(),则链接将首先处理用户访问该页面的单击。我不确定默认链接处理程序是否将点击传播到父元素。

如果这是问题,可能更容易看到一些代码来帮助找到问题。

答案 2 :(得分:1)

您的网址缺少第二个引号。