3

我有以下情况

<script>
   jQuery.ajax{
       url : 'some serverside bookkeeping handler',
       type : post,
       data : ajaxData
   };

   window.location = 'Some new URL';
</script>

用例:我想记录点击网页上特定链接的次数。请注意,着陆页不归我所有。我正在考虑进行 ajax 调用并同时导航到新的 URL。

我基本上想知道是否有任何浏览器甚至不会进行 ajax 调用并导航到新的 URL。我的假设是浏览器可能仍处于准备 ajax 请求对象并导航到新 URL 的过程中,这使得浏览器不会触发 ajax 请求。

会不会有这样的情况?

请注意,如果 ajax 响应出错,我并不担心。

4

2 回答 2

2

为了省事,将您的重定向放入 ajax 调用的成功处理程序中!

jQuery.ajax{
   url : 'some serverside bookkeeping handler',
   type : post,
   data : ajaxData
   success: function(){   window.location = 'Some new URL'; }
};

或者<a href="some url" target="_blank" ></a>如果可以的话,使用在浏览器中打开一个新标签。

于 2013-07-30T12:50:47.073 回答
1

似乎是不可能的。window.location在 ajax 响应返回之前执行的行。更改时window.location,来自先前域的所有 ajax 请求都将被取消。试试这个小提琴: http: //jsfiddle.net/Vfk3S/8/并查看 devtool 中的“网络”选项卡。

于 2013-07-30T12:18:38.080 回答