$.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 ajax异步调用方法中不能给全局变量赋值的原因及解决方法

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

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

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

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

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

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

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

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

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

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

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

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

//检查用户名是否注册                   var isRegist = "";                   $.ajax({                      ...

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

因为Ajax是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,因此你的逻辑是无法使用同步方式编写的解决方法一: 将逻辑赋值写在ajax回调函...

ajax不能给全局变量赋值,只能采用同步提交的方式?

等等有时间再来解决吧,反正现在同步提交可以给全局变量赋值了。  async: false, **************************************************...

jquery ajax成功响应后无法赋值给全局变量

在写前端页面的时候遇到一个ajax的问题。感觉倒像是逻辑不对,不过遇到了,总要撸一下。 test(); var message; function test()...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:$.ajax()给全局变量赋值问题解决示例
举报原因:
原因补充:

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