前端$.ajax()给全局变量赋值问题解决。

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

复制代码 代码如下:


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

});

 

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

 
  1. var results;

  2.  
  3. $.ajax({

  4. type: "POST",

  5. url: "ajax/checkfor1.php?action=reg_checkEmail",

  6. data: {email:email},

  7. dataType: 'text',

  8. async: false,

  9. success: function(data){

  10. results=data;

  11. return false;

  12. },

  13. error: function() {

  14.  
  15. alert("异常!");

  16. }

  17. });

  18. if(results==0){

  19. ShowTips("用户名已经存在");

  20. return false;}

 

以下是网上找的代码

 原文链接:https://segmentfault.com/q/1010000000334467

 
  1. var coordinates = (function() {

  2. var result;

  3. $.ajax({

  4. type:'POST',

  5. url:'/json',

  6. dataType:'json',

  7. data:{cmd:'coordinates'},

  8. async:false,

  9. success:function(data){

  10. result = data;

  11. }

  12. });

  13. return result;

  14. })();

  15.  
  16. $(document).ready(function(){

  17. if(coordinates.length) {//初始化页面,把所有坐标列一个列表

  18. $.each(coordinates, function(index,term) {

  19. var $item = $('<li class="item"></li>').text('坐标:'+term[0] + ',' + term[1]).appendTo('#list');

  20. })

  21. }

  22. }

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值