今天在做项目时,遇到了一个问题。我用的是 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)