改变成功的价值,但不改变

时间:2014-10-28 14:11:04

标签: jquery ajax json

我需要在成功时更改var state,但是调试js代码,即使成功,它也根本不会调用成功函数。状态变量仍未定义。我不确定为什么它不会改变。使用firebug查看网络时,响应为{"d": 1},这是状态应该具有的值。任何帮助表示赞赏

var state;

$.ajax({
        url: "isoServe.asmx/GetStatus",
        type: "GET",        
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            state = msg.d;
        }, 
        error: function() {
            alert("Error" );
        }
    }); 

return state;

1 个答案:

答案 0 :(得分:0)

你应该{AJ}呼叫中return state

var state;

$.ajax({
    url: "isoServe.asmx/GetStatus",
    type: "GET",        
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        state = msg.d;
        return state;
    }, 
    error: function() {
        alert("Error" );
    }
});

在您的情况下,{AJ}响应可能会发出return语句!正如它所说,异步,你需要等到它得到响应。


更新

您无法直接响应AJAX调用,因为它是异步请求。相反,它可以调用success回调中的另一个函数,以便触发函数并设置状态。