html 跳转 window,在方法里 window.location.href 不会立即跳转,有什么方法解决

该博客讨论了一个JavaScript异步问题,其中`getData()`函数使用了同步的Ajax请求。当请求失败时,期望跳转到`../exit.html`,但实际执行了`window.location.href='http://www.baidu.com';`。作者寻求解决方案,要求在数据获取失败时不执行后续的`gourl()`方法。示例代码展示了如何在同步Ajax中实现错误处理和流程控制。
摘要由CSDN通过智能技术生成

疑问:为何不是执行 location.href = "../exit.html";, 而是执行了 window.location.href = 'http://www.baidu.com'; ?

有什么办法执行完 getData(), 如果获取数据失败,则跳转到 ../exit.html, 不再执行 gourl(); 方法呢?

补充:ajax里面的 async: false 是同步请求!!!,这个只是一个简单的demo,实际上getData()方法后面可能有很多逻辑,但是如果getData()获取数据失败,就不让程序再执行其他的方法,而且其他的方法不一定在同一个文件里面。

我是测试页面,看我是否发生跳转

$(function() {

getData();

gourl();

});

function getData() {

var is_success = false;

$.ajax({

type: "GET",

url: "http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_key=bug&bk_length=600",

data: "",

dataType: "json",

async: false,

success: function(data) {

if (data.status == 200) {

is_success = true;

} else {

is_success = false;

}

}

});

if (!is_success) {

location.href = "../exit.html";

}

}

function gourl() {

console.log('我被执行了');

window.location.href = 'http://www.baidu.com';

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值