• 解决ajax无法给js全局变量赋值的问题


    解决ajax无法给js全局变量赋值的问题


    http://blog.csdn.net/qq_26222859/article/details/51543433

     

    ajax中是无法给js中的全局变量赋值的,因为ajax默认是异步请求(当要赋值时,此时的值没有拿到,所以赋值不成功)。例如:

    1. function test(){
    2.   var result=0;
    3.   $.ajax({  
    4. type: "POST",  
    5. url: "ajax/checkfor1.php?action=reg_checkEmail",          
    6. data: {email:email},   
    7. dataType: 'text',     
    8. success: function(data){                                                      
    9. results=data;  
    10. },  
    11. error: function() {     
    12.                alert("异常!");    
    13.       }    
    14. });
    15. }

     

    执行时会发现赋不进去值

    解决办法1:将ajax请求设置为同步请求

    1. function test(){
    2.   var result=0;
    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. },  
    12. error: function() {     
    13.                alert("异常!");    
    14.       }    
    15. });
    16. }

    解决办法2:不使用js全局变量存数据而是用隐藏的html标签存数据

    1. function test(){
    2.   var result=0;
    3.   $.ajax({  
    4. type: "POST",  
    5. url: "ajax/checkfor1.php?action=reg_checkEmail",          
    6. data: {email:email},   
    7. dataType: 'text',     
    8. success: function(data){                                                      
    9.               $('#datastore').append('<div data='+data+'></div>');//使用一个div标签,定义一个自定义属性data来存储数据
    10. },  
    11. error: function() {     
    12.                alert("异常!");    
    13.       }    
    14. });
    15. }

     

  • 相关阅读:
    JS制作图表
    把图片存入数据库
    .NET各种小问题
    JS各种小问题
    JS操作cookie
    JS处理Json数据
    git与svn的区别
    关于java中的一些循环
    java基础面试(上)
    Spring事务
  • 原文地址:https://www.cnblogs.com/zealousness/p/8757950.html
Copyright © 2020-2023  润新知