这个问题可能看起来有点奇怪,这个问题是在页面通过 webtests 时出现的。
该页面使用 AJAX 调用(异步设置为 true)来收集一些数据。由于某种原因,它不会在 AJAX 调用返回之前交换页面 - 请考虑以下代码:
console.log("firing ajax call");
$.ajax({
type: "POST",
url: "requestedService",
data: mode : "requestedMethod",
cache: false,
dataType: "json",
success: function() { console.log("ajax response received") },
error: null,
complete: null,
});
console.log("changing window location");
window.location = "http://www.google.com"
该位置仅在 AJAX 返回响应后更改。我已经测试了调用,它实际上是异步的,页面没有被阻塞。即使 AJAX 调用尚未完成,它也应该只加载新页面,但没有完成。我可以看到页面正在尝试加载,但只有在我得到响应后才会发生。有任何想法吗?
控制台输出为:
firing ajax call
changing window location
ajax response received