AJAX return false失效问题

本文探讨了使用jQuery发起同步Ajax请求的细节,展示了如何通过设置async属性为false来确保Ajax请求完全执行后再继续执行后续代码。文章包括了示例代码,解释了在控制台中打印语句的执行顺序,并讨论了在不同async设置下打印语句的出现时机。
var alertStatus = false;

$.ajax({	
	type : "GET",
	url : url,
	dataType : "json",
    async: false,
	data : {},
	success : function(data) {
        console.log("success");
		var undef = undefined;
		if(typeof(data.error) != "undefined"){
			layer.msg(alertMessage.error);
		}else{
            alertStatus = true;
        }
	},
	error : function(jqXHR) {
		layer.msg("网络连接错误");				
		console.log("发生错误:" + jqXHR.status);
	}
});
console.log("begin");
return alertStatus;	

 

   async: false 使ajax同步执行,即当ajax中的方法执行完成后才会继续执行;当async: true时ajax下面的语句不等到ajax中的方法执行完后就会执行,在控制台打印时会发现ajax下的打印语句会早于success中的打印语句执行

return网页失效的原因及解决办法如下: - **锚点跳转失效**:在页面中定义锚点和链接跳转时,若`onclick`事件里没有`return false`,会使点击链接无法正确跳转到页面顶部,而是跳到其他位置。解决办法是在`onclick`中添加`return false`,例如将`<a href="#top" onclick="click()">xxx</a>`改成`<a href="#top" onclick="click(); return false;">xxx</a>` [^1]。 - **ajax异步加载导致return失效**:在进行验证码校验并提交表单这类涉及ajax异步加载的功能时,会出现`return`无效以及执行顺序不符合预期的问题。不过引用中未提及具体解决办法,通常可考虑将异步请求改为同步请求,或者使用回调函数来处理后续逻辑。 - **无法返回returnValue的回传失效**:在使用`window.showModalDialog`时,可能会出现无法返回`returnValue`的情况。对于Chrome浏览器,当`returnValue`为`undefined`时,可通过`window.returnValue`获取。示例代码如下: ```javascript window.onload = function () { var returnValue = window.showModalDialog("son.html ", window); // for chrome if (returnValue == undefined) { returnValue = window.returnValue; } } ``` [^3] - **JS跳转页面失效**:在`window.location.href`下一行写`return false`,可使浏览器停止操作。示例代码如下: ```javascript function sub(info) { var title = $(".title").text(); var content = $(".textarea").text(); var date = {"title": title, "content": content}; $.post("/submit/?id=" + info.id, date, function (date) { alert(date); }); window.location.href = "/index/?username=" + info.name + "&quanxian=1"; //window.event.returnValue = false; return false; } ``` [^4] - **javaweb中return一个jsp页面css文件失效**:引用里未提及具体原因和解决办法,一般可能是路径问题,可检查`<link>`标签中的路径是否正确,确保能正确引用到CSS文件 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值