繁体   English   中英

jQuery ajax调用没有设置变量的值

jQuery ajax call not setting variable's value

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有这个jquery调用ajax,

function findTaxForProcess(argPrc, argPrcAmount, argPrcDiscount) {
            if (argPrc == '') { return 0; };
            var _valToReturn;

            if ($('#hdnTaxBefore').val() == "true") {
                // if tax is calculated before discount
                $.ajax({
                    url: '/AutoComplete.asmx/FindProcessTax',
                    type: 'POST',
                    timeout: 5000,
                    datatype: 'xml',
                    cache: false,
                    data: 'argProcess=' + argPrc + '&argAmt=' + argPrcAmount,
                    success: function (response) {
                        _valToReturn = $(response).find('double').text();
                        alert(_valToReturn);
                    }
                });
            }

            else {
                // the tax is calculated after discount
                $.ajax({
                    url: '/AutoComplete.asmx/FindProcessTaxAter',
                    type: 'POST',
                    timeout: 5000,
                    datatype: 'xml',
                    cache: false,
                    data: 'argProcess=' + argPrc + '&argAmt=' + argPrcAmount + '&argDiscount=' + argPrcDiscount,
                    success: function (response) {
                        _valToReturn = $(response).find('double').text();
                        alert(_valToReturn);
                    }
                });
            }
            alert('came here ' + _valToReturn);
            return _valToReturn;
        };

问题是第一个警报显示2.873 (在其他情况下,它显示2.178 ),但问题是第二个警报,第二个警报显示, came here undefined ??? FTW? 黑客出了什么问题? 我已经乱了2天,但没有!

为什么_valToReturn的值在第二次警报时未定义? 并首先定义? 任何帮助?

编辑: 警报came here _valToReturn 第一个警报执行。 所以,就像(差不多!)所有的回答者说,如果它之前来了,它将是未定义的,我知道,但正如我所说它是之前没有执行。

4 个回复

Ajax是一个异步请求。 到成功事件执行时,警报“来到这里未定义”将会执行。 并且该变量尚未被初始化。

更新:在仔细回答您的问题时,我相信匿名函数将valToReturn视为局部变量。 因此,如果你愿意,那些变量会在不同的“堆栈”上。

看到这个: Javascript匿名函数不更新全局变量

要么

在ajax回调函数之外使用变量

与你的相似。

尝试初始化_valToReturn值以摆脱undefined

如果第一个警报首先出现,那么如果首先是undefined,然后是值,那么这是因为ajax的异步调用。 要克服这一点,您可以使ajax调用同步。

如果第二个警报出现在第一个警报之后,那么它可能是变量值的问题。

您可以尝试使用console.log来查找首先执行的操作,在我看来,“来到这里”的警报应该先执行,然后去查看firebug或chrome console

1 使用JQuery调用AJAX而不是设置变量

我正在尝试使用reCAPTCHA和AJAX验证CAPTCHA。 我有一个函数来完成所有操作,但我需要向调用函数返回true或false值,以指定是否提交表单。 正在正确处理我的AJAX调用,但是我设置了标志以显示CAPTCHA无效是未设置的。 我不是那么好解释所以这里是代码: ...

5 PHP Jquery ajax调用不会在ajax成功中增加变量值

我想在ajax调用成功中将变量值增加1。 我使用了以下脚本但没有增加变量值,它总是返回定义的值。 我尝试使用以下方法将limit变量值增加1但不是将值增加1 它始终返回极限变量的0值请任何人帮助我在代码中错过了什么。 ...

6 jQuery ajax将变量值传递给另一个ajax调用

我正在尝试使用post运行两个jquery ajax方法,第一步,提交请求,并返回作业ID,第二步应获取作业ID并将其传递给另一个ajax函数,我尝试了以下操作,但是步骤2的值似乎无效。 非常感谢您的帮助。 ...

2014-11-14 03:54:57 0 546   jquery
7 从ajax调用设置变量

让我们说清楚。 这就是我想要做的:我有一堆从服务器获取的用户数据。 我想缓存数据,以避免每次需要电子邮件或用户名时都向服务器发出请求。 因此,我将构建诸如getEmail,getUsername之类的函数,这些函数使Ajax调用一次并将其保存在一个对象中。 如果再次调用该函数,它将返 ...

8 $ _SESSION变量未在AJAX调用中设置

我为用户身份验证编写了此调用: 这是auth.php函数 奇怪的是,如果我直接导​​航到 它确实设置了其他两个会话变量,但我永远无法获得index.php来接他们。 我什至在其中添加了刷新行,以确保可以拾取它们,并且它可以正常使用$_SESSION['logged' ...

9 jQuery ajax调用变量

对于我的Phonegap / Cordova项目,我尝试使用以下功能来处理所有ajax调用: 这样既可以处理请求,也可以处理错误。 如果一切正常,则应返回数据。 但是使用此: 在控制台中给出以下内容: 在POST请求中,我可以看到该数据已被调用并且可以。 但是, ...

10 Jquery Ajax调用没有设置cookie

我检查了这个请求,可以看到: 但是当我查看浏览器cookie时,这没有设置。 相关信息可能是它的跨域调用。 http://localhost:36859/至http://127.255.0.1:8061/ 。 我还需要做任何其他事情来设置cookie吗? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM