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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/jquery/183285.html

猜你在找的jQuery相关文章