微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery ajax调用成功,我如何更改包装器JavaScript函数中的全局变量?

function ajax_test(str1){ 
  var url = "None" 
  jq.ajax({
    type:'post',cache: false,url: 'http://....' + str1,success: function(data,status,xhr){ 
      url=data; 
    },error: function (xhr,e) {  
    },async: true,dataType: 'json' 
  }); 
  return url 
}

如何将全局变量url设置为返回的成功ajax数据?

解决方法

在Javascript中,函数返回异步结果是不可能的。该函数通常在AJAX请求之前返回。

您可以随时强制您的请求与async同步:false,但这通常不是一个好主意,因为它会导致浏览器在等待结果时锁定。

解决这个问题的标准方法是使用回调函数

function ajax_test(str1,callback){  
   jq.ajax({ 
     //... your options
     success: function(data,xhr){  
       callback(data);
     }
   });  
}

然后你可以这样称呼:

ajax_test("str",function(url) {
  //do something with url
});

原文地址:https://www.jb51.cc/jquery/183285.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐