Collect from 网页模板
Modified by 追梦人物

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

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

以下是自己写的异步验证用户名是否存在的代码

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');
      })
    }
}

原文地址 [blog.csdn.net](https://blog.csdn.net/qq_26222859/article/details/51543433)