javascript - 访问javascript全局变量

标签 javascript ajax

以下是我的 JavaScript。如何使变量 success 成为全局变量,以便 ajax->success 中所做的更改反射(reflect)在外部?

function foo() {  
    var success = false;  
    $.ajax({

        type: "POST",
        url: "",
        dataType: "xml",
        success: function(xml) {
            var code = parseInt($(xml).find("Response").attr("code"), 10);
            switch (code) {
                case 1:
                    success = false;
                    break;
                case 0:
                    success = true;
                    break;
            }
        }
    });
    return success;
}

最佳答案

传递成功中调用的回调函数:

function makeCall(callback) {
    $.ajax({
        type: "POST",
        url: "",
        dataType: "xml",
        success: function(xml) {
            var code = parseInt($(xml).find("Response").attr("code"), 10);
            callback(!code);
        }
    });
}

makeCall(function (success) {
    alert(success);
});

这就是异步编程/请求的工作方式。当然,另一种方法是使其成为同步请求,但这有点达不到目的。

我压缩了 switch 内容,因为您似乎想要 01 的相反 bool 值。

关于javascript - 访问javascript全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579243/

相关文章:

php - Jquery:在没有网络服务器的情况下在本地运行 AJAX

php - Ajax 发布带有数字但不带有字母的字符串

javascript - Ajax 不适用于 Android 谷歌浏览器

php - 使用 Laravel 从数据库加载数据

javascript - 滚动页面时淡入淡出 div

javascript - 如果只有 div 1 被点击,播放声音

ajax - 如何从 Web 浏览器(客户端)建立 TCP Socket 连接?

javascript - 我们应该在 AngularJS 元素的 Karma 单元级测试中使用 CSS

javascript - 使用 jQuery 错误设置自定义数据属性

javascript - 删除高亮 JavaScript getSelection 函数