ajax异步回调函数中给外部变量赋值的问题探讨

复制代码 代码如下:

<!doctype html>

<head>

<meta charset="utf-8">

</head>

<body>

<script src="http://localhost/UIBMSPHPProj/public/js/jquery-1.8.2.min.js"></script>

<script>

$(function(){

var str = "aaa";

$.post("http://localhost/UIBMSPHPProj/index.php/Index/abc",{},function(data){

//data = "bbb";

console.log(str);//aaa

str = data;

console.log(str);//"bbb"

});

console.log(str);//"aaa"

});

</script>

</body>

</html>

ajax回调函数异步的原因导致了在外部直接获取str的值时还是“aaa”,需要用“bbb”时,可以将用"bbb"的函数放入回调函数中调用。

时间: 2024-10-04 03:12:23

ajax异步回调函数中给外部变量赋值的问题探讨的相关文章

ajax异步回调函数中给外部变量赋值的问题探讨_AJAX相关

复制代码 代码如下: <!doctype html> <head> <meta charset="utf-8"> </head> <body> <script src="http://localhost/UIBMSPHPProj/public/js/jquery-1.8.2.min.js"></script> <script> $(function(){ var str

浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

 本篇文章主要是对jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如:    代码如下: function ManageCommentText(text) { var result = te

ajax异步回调函数无法调用

问题描述 ajax.js代码: url正确,已经进入到对应的aciton并执行有结果,但是 xmlHttp.onreadyStatechange=function()  这句一直未执行,我在函数里写了alert并未跳出,请大神看看娜丽有问题~~   action的代码:  public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletRespon

【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数

问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:    问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法不认识最后返回的是给ajax的data,而是以为要去找这个页面所以并未找到!! 1 @RequestMapping("/queryAllDisease") 2 @ResponseBody 3 public PageInfo<Disease> queryAllDisease

nodejs-NodeJS的回调函数中的变量怎么在回调函数外使用

问题描述 NodeJS的回调函数中的变量怎么在回调函数外使用 例如fs的readFile方法: fs.readFile(filename, [options], callback) 其中读取出来的数据是存在回调函数的参数data中,可是我想在回调函数外,使用读取出的数据,该怎么写? 我刚开始学,纯小白,各位大神写详细点儿,谢谢! 解决方案 用readFileSync同步读取,而不是异步,异步你只能讲需要使用数据的代码全部放入callback中 http://www.itxxz.com/a/gao

ajax回调函数中使用$(this)取不到对象的解决方法_AJAX相关

下面这段jquery代码,是可以达到预期效果的. 复制代码 代码如下: $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.ajax({ url:"e

ajax回调函数中使用$(this)取不到对象的解决方法

下面这段jquery代码,是可以达到预期效果的. 复制代码 代码如下: $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.ajax({ url:"e

jquery ajax回调函数中调用$(this)无法调用的问题解决方法

在调用函数前先把$(this)存入变量,然后再在回调函数中使用就没问题了.  代码如下 复制代码 $(document).ready(function(){ $(".del").click(function () { obj=$(this).parent();//回调函数前先写入变量; delid=$(this).attr('delid'); $.get('drag.php',{'op' : 'del','id' : delid},function(data){ if(data==1)

json-使用jQuery ajax,回调函数必须在有一个alert()的前面才能执行?

问题描述 使用jQuery ajax,回调函数必须在有一个alert()的前面才能执行? 请问下 $(document).ready(function() { $("#confirm").submit(function(){ var $form = $(this); $.post($form.attr("action"),$form.serialize(),function(data){ alert("5555"); if (data.code