ajax下window.location.href页面不跳转问题
warning:
这篇文章距离上次修改已过200天,其中的内容可能已经有所变动。
问题解释:
使用AJAX时,如果你尝试通过window.location.href
进行页面跳转,但页面没有跳转,可能是因为AJAX请求还未完成就已经触发了页面跳转。
解决方法:
- 确保AJAX请求完成后再进行页面跳转。你可以在AJAX请求的
success
回调函数中设置window.location.href
。 - 如果你使用的是
$.ajax
(假设你使用的是jQuery),可以在complete
回调函数中进行页面跳转。
示例代码(使用jQuery):
$.ajax({
url: 'your-endpoint',
type: 'GET',
success: function(data) {
// 成功处理逻辑
},
complete: function() {
// 请求完成后跳转页面
window.location.href = 'your-new-page.html';
}
});
如果不使用jQuery,可以直接在原生JavaScript的XMLHttpRequest
对象中监听onreadystatechange
事件,然后在readyState
为4
(请求已完成)并且status
为200
(请求成功)时进行页面跳转。
示例代码(原生JavaScript):
var xhr = new XMLHttpRequest();
xhr.open('GET', 'your-endpoint', true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 请求成功,并且页面跳转
window.location.href = 'your-new-page.html';
}
};
xhr.send();
确保在AJAX请求完成后进行页面跳转,这样可以避免因为页面跳转导致AJAX请求中的异步操作未能正常完成的问题。
评论已关闭