jQuery的ajax,当async为false时,同步操作失败。解决方式

引发失败时代码:

 $.ajax({
                url : ‘your url‘,
                data:{name:value},
                cache : false,
                async : true,
                type : "POST",
                dataType : ‘json/xml/html‘,
                success : function (result){
                    return result;
                }
            });

解决方式:

 var ret = null;
$.ajax({
                url : ‘your url‘,
                data:{name:value},
                cache : false,
                async : true,
                type : "POST",
                dataType : ‘json/xml/html‘,
                success : function (result){
                    ret=result;
                }
            });
return ret;

说明:

不要在success的回调函数中直接return。详细原因后面在考察!

时间: 2024-07-30 20:35:18

jQuery的ajax,当async为false时,同步操作失败。解决方式的相关文章

【jquery】ajax 请求成功后新开窗口被拦截解决方法

问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所

jQuery同步Ajax带来的UI线程阻塞问题及解决办法

原文:jQuery同步Ajax带来的UI线程阻塞问题及解决办法 俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下. 事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return.基本的逻辑剥离出来是这样的: function getData1(){ var result; $.ajax({ url : 'p.php'

jQuery的ajax,当async为false时,同步操作失败。解决方案

引发失败时代码: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST", dataType : 'json/xml/html', success : function (result){ return result; } }); 解决方案: var ret = null; $.ajax({ url : 'your url', data:{name:value},

jQuery使用ajax方法提交登陆信息时,遇到特殊字符&

当我在做登陆页面的时候,常常会用到ajax方法来检测用户信息所填写的内容是否符合规范要求.一开始,为了简单明了,快速实现功能,在使用jQuery时,是这样写的: $.ajax({ url : "{:U('public/checklogin')}", cache : false, type : 'POST', dataType : 'json', data : 'username='+$('#username').val()+'&password='+$('#password')

jquery用Ajax中的回调函数时注意事项

前端代码 <script language="javascript" type="text/javascript" src="<?php echo base_url();?>/js/jquery-1.7.2.min.js"></script> <script> function add_ip(bip,eip,area_id) { var action = "<?php echo si

在Ubuntu下使用Eclispe连接hadoop时拒绝链接解决方式总结

用eclipse连接集群查看文件信息提示9000port拒绝连接的错误 Cannot connect to the Map/Reduce location: hadoop1.0.3 Call to ubuntu/192.168.1.111:9000 failed on connection exception: java.net.ConnectException: 拒绝连接 1.常见解决的方法:配置都非常正常,就是连接不了. 后来又一次配置hadoop location,把Map/Reduce

JQuery的Ajax跨域请求的解决方式

今天在项目中须要做远程数据载入并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuery对于Ajax的跨域请求有两类解决方式,只是都是仅仅支持get方式. 各自是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式. 什么是jsonp格式呢?API原文:假设获取的数据文件存放在远程server上(域名不同,也就是跨域获取数据).则须要使用jso

jquery ajax的async属性的理解

1 $(function(){ 2 queryTemplateSort(); 3 // 4 fillAddTemplatePage(); 5 function queryTemplateSort() { 6 $.ajax({ 7 type: "post", 8 url: "http://localhost:8080/...", 9 data: {"pageNo": 1, "pageSize": 20}, 10 dataType

jquery的$.ajax async使用详解

async在jquery ajax中是一个同步参数了,我们下面来给大家介绍在jquery ajax中使用async时碰到的一些问题与方法介绍,希望例子能给各位同学带来一些帮助哦. async默认是true, 即为异步方式, $.Ajax执行后, 会继续执行ajax后面的脚步, 直到服务器端返回数据后, 触发$.Ajax里的success方法. 这时候执行的是两个线程. var temp; $.ajax({ async: false, type : "POST", url : defau