Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 全局变量值未超出ajax方法_Jquery_Ajax - Fatal编程技术网

Jquery 全局变量值未超出ajax方法

Jquery 全局变量值未超出ajax方法,jquery,ajax,Jquery,Ajax,我从后面返回Json对象,并尝试在全局变量中绑定响应。 **从C#返回** **下面是我的ajax调用函数** var responeOfData; var feb; var mar; $.ajax({ url: "CashManagement/GetCashOverview", type: 'GET', dataType: 'json', // added data type success: function (res) {

我从后面返回Json对象,并尝试在全局变量中绑定响应。 **从C#返回**

**下面是我的ajax调用函数**

var responeOfData;
var feb; 
var mar;
$.ajax({
    url: "CashManagement/GetCashOverview",
    type: 'GET',
    dataType: 'json', // added data type
    success: function (res) {
        responeOfData = res;
        feb = res.february; // ** getting the value here **
        mar = res.march;
    }
});
var test = feb; **not getting the value here**
在上面的代码中,我声明了一个全局变量responeOfData,并尝试设置结果值,但它在ajax函数外不起作用,然后我声明了另外两个全局变量feb和mar,并设置了响应值,它显示了函数内的值,并且我尝试在test变量中分配它在功能之外,它什么也没有显示。到底出了什么事我不明白。

有人能帮我吗?

Ajax请求是异步的,这意味着请求后的代码行不能保证在请求完成后运行,这就是为什么存在
success
回调,以便在请求成功后运行代码

这意味着这是实现您想要的目标的正确方法:

var responeOfData;
var feb; 
var mar;
var test; // declare globar variable test
$.ajax({
    url: "CashManagement/GetCashOverview",
    type: 'GET',
    dataType: 'json', // added data type
    success: function (res) {
        responeOfData = res;
        feb = res.february; // ** getting the value here **
        mar = res.march;
        
        test = feb; // assign value to variable
    }
});
如果您坚持请求是同步的,您可以指定
async
选项并将其设置为
false

var responeOfData;
var feb; 
var mar;
$.ajax({
    url: "CashManagement/GetCashOverview",
    type: 'GET',
    dataType: 'json', // added data type
    success: function (res) {
        responeOfData = res;
        feb = res.february; // ** getting the value here **
        mar = res.march;
    },
    async: false // make ajax request synchronous
});
var test = feb; //feb exists;

Ajax请求是异步的,这意味着请求后的代码行不能保证在请求完成后运行,这就是为什么存在
success
回调,以放置代码在成功请求后运行

这意味着这是实现您想要的目标的正确方法:

var responeOfData;
var feb; 
var mar;
var test; // declare globar variable test
$.ajax({
    url: "CashManagement/GetCashOverview",
    type: 'GET',
    dataType: 'json', // added data type
    success: function (res) {
        responeOfData = res;
        feb = res.february; // ** getting the value here **
        mar = res.march;
        
        test = feb; // assign value to variable
    }
});
如果您坚持请求是同步的,您可以指定
async
选项并将其设置为
false

var responeOfData;
var feb; 
var mar;
$.ajax({
    url: "CashManagement/GetCashOverview",
    type: 'GET',
    dataType: 'json', // added data type
    success: function (res) {
        responeOfData = res;
        feb = res.february; // ** getting the value here **
        mar = res.march;
    },
    async: false // make ajax request synchronous
});
var test = feb; //feb exists;