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

今天在做项目时,遇到了一个问题。我用的是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');
      })
    }
}
阅读更多
个人分类: 前端
上一篇http post请求时content-type的几种取值
下一篇ECMAScript5 Date.now()
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭