相关文章推荐
谦逊的板栗  ·  c++ - In CMake, how ...·  1 年前    · 
高兴的猴子  ·  chrome-devtools - ...·  1 年前    · 
打篮球的充值卡  ·  scala - Getting Size ...·  1 年前    · 


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

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

  • function test(){
  • var result=0;
  • $.ajax({
  • type: "POST",
  • url: "ajax/checkfor1.php?action=reg_checkEmail",
  • data: {email:email},
  • dataType: 'text',
  • success: function(data){
  • results=data;
  • error: function() {
  • alert("异常!");
  • 执行时会发现赋不进去值

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

  • function test(){
  • var result=0;
  • $.ajax({
  • type: "POST",
  • url: "ajax/checkfor1.php?action=reg_checkEmail",
  • data: {email:email},
  • dataType: 'text',
  • async: false, //设置为同步请求
  • success: function(data){
  • results=data;
  • error: function() {
  • alert("异常!");
  • 解决办法 2:不使用js全局变量存数据而是用隐藏的html标签存数据

  • function test(){
  • var result=0;
  • $.ajax({
  • type: "POST",
  • url: "ajax/checkfor1.php?action=reg_checkEmail",
  • data: {email:email},
  • dataType: 'text',
  • success: function(data){
  • $('#datastore').append('<div data='+data+'></div>');//使用一个div标签,定义一个自定义属性data来存储数据
  • error: function() {
  • alert("异常!");
  •