发送ajax请求而不等待回答

时间:2016-03-03 15:51:31

标签: javascript jquery ajax asynchronous

我想发送一个ajax请求来发送一些信息并在发送后立即(无论我是否收到错误/成功)进行重定向(无需等待服务器响应)

我想知道我是否做了像

这样的事情
$.ajax({
url:_myurl_,
timeout:500,
success:function(){document.location= _redirectUrl_},
error: function(){document.location= _redirectUrl_}
})

会好吗?添加超时是否会取消我的请求?

4 个答案:

答案 0 :(得分:0)

请不要实施任何成功处理程序。

所以你可以做...

$.ajax({
    type: "post",
    url: "/log-message"
});

由于它是异步的,因此它将是非阻塞的,并且此语句之后的任何代码都将在不等待服务器响应的情况下执行。

答案 1 :(得分:0)

异步:false 处于异步模式的过程中,不必等待完成其他过程

答案 2 :(得分:0)

就我而言,我需要在每次数量变化时更新购物车,以实时保存数据库中的商品库存(用于在线商店)。因此,我只需添加一个超时 100 毫秒删除成功/错误回调

$.ajax({
  url: '/update-cart',
  method: 'POST',
  data: {
    data: jQuery('#orderfrm').serializeArray()
  },
  timeout: 100
});
<块引用>

注意:有些请求无效也没关系,因为当订单被保存时,整个购物车的更新会通过回调发送。 如果您的查询需要确认,请不要使用该解决方案!

答案 3 :(得分:-1)

根据定义,AJAX是异步的。只需在ajax块之后添加位置重定向代码,而不是在AJAX内部。

{
    "destination_addresses": [...],
    "origin_addresses": [...],
    "rows": [{
        "elements": [{
            "distance": {
                "text": "1 ft",
                "value": 0
            },
            "duration": {
                "text": "1 min",
                "value": 0
            },
            "status": "OK"
        }, {
            "distance": {
                "text": "62 ft",
                "value": 19
            },
            "duration": {
                "text": "1 min",
                "value": 3
            },
            "status": "OK"
        }, {
            "distance": {
                "text": "253 ft",
                "value": 77
            },
            "duration": {
                "text": "1 min",
                "value": 19
            },
            "status": "OK"
        },.....}]
}],
"status": "OK"
}