$.ajax()给全局变量赋值问题解决示例

转载 2016年05月31日 10:02:49

今天在做项目时,遇到了一个问题。我用的是ajax,要在$.ajax({里面给一个全局变量赋值,结果死活赋值不上,纠结了好半天,后来上网查了查,才知道,ajax默认是异步请求,(当要赋值时,此时的值没有拿到,所以赋值不成功)如果要在$.ajax({里面给全局变量赋值,需要改为同步操作,即加上async : false,就可以了。

复制代码 代码如下:

$.ajax({
type:"post",
url:"a.action",
data: {},
dataType: 'text',
async : false,//设置为同步操作就可以给全局变量赋值成功
success:function(data){
usersname = data;//usersname为前面声明的全局变量
}
});

 以下是自己写的异步验证用户名是否存在的代码
 var results;
        
    	$.ajax({
			type: "POST",
			url: "ajax/checkfor1.php?action=reg_checkEmail",		
			data: {email:email}, 
			dataType: 'text', 
			async: false,
			success: function(data){													
					results=data;
					return false;
			},
			error: function() {  
				        
				          alert("异常!");  
				     }  
		});
    	if(results==0){
    		ShowTips("用户名已经存在");  
        	return false;}


以下是网上找的代码
 原文链接:https://segmentfault.com/q/1010000000334467
var coordinates = (function() {
    var result;
    $.ajax({
        type:'POST',
        url:'/json',
        dataType:'json',
        data:{cmd:'coordinates'},
        async:false,
        success:function(data){
            result = data;
        }
    });
    return result;
})();

$(document).ready(function(){
    if(coordinates.length) {//初始化页面,把所有坐标列一个列表
      $.each(coordinates, function(index,term) {
        var $item = $('<li class="item"></li>').text('坐标:'+term[0] + ',' + term[1]).appendTo('#list');
      })
    }
}

相关文章推荐

jquery的click事件失效(click事件不能写在文件头部)

click事件失效,不能触发的另一个常见原因就是: click事件写在文件头部

jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t...

JQuery中ajax的回调函数内给全局变量赋值

需将ajax设置为同步操作,则会先给变量赋值再走后面的代码。 var err=0 $.ajax({ url: 'http://www.xjpattern.com/i...
  • phpsi
  • phpsi
  • 2017-03-17 19:22
  • 644

jquery ajax 异步调用方法中不能给全局变量赋值的原因及解决办法

在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t...

[JS]JQuery中使用Ajax赋值给全局变量异常解决方案

来自:http://www.wlcrane.com/  我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢?    原因其实很简单,我们用的Aja...

JQuery中使用Ajax赋值给全局变量异常解决方案

我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢?   原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然...

ajax实现给JavaScript中全局变量赋值

ajax实现给JavaScript中全局变量赋值

解决ajax方法内部不能给方法外部变量赋值的问题

//检查用户名是否注册                   var isRegist = "";             &#...

关于在ajax中无法对全局变量进行赋值的原因解读

今天做项目时遇到一个问题,这时需要对全局变量进行赋值,却发现怎么也无法进行赋值,后来查询了资料后

[AJAX]js设置全局变量,在ajax中给予赋值赋值不上

因为Ajax是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,因此你的逻辑是无法使用同步方式编写的解决方法一: 将逻辑赋值写在ajax回调函...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)