从全局变量中的AJAX请求返回值

时间:2009-09-30 15:47:35

标签: ajax webrequest

很抱歉,如果这个问题重复,但我无法解决其他解决方案中的问题。

我在主索引中包含的sepate文件中有这段代码:

var getSuggestedData = {    
serviceURL: $("input[name=suggestedServices]").val(),   
dataR:"",       
doRequest:function(){
    //request data to controller
    $.ajax({
        url:this.serviceURL,
        success:function(msg){              
            this.dataR = msg;               
        }           
    })                  
}

}

当我试图以这种方式从我的索引中获取变量“dataR”时,它是未完成的!请问,有人可以帮助我吗?

$().ready(function() {
getSuggestedData.doRequest();   
alert(getSuggestedData.dataR);

});

提前谢谢!

2 个答案:

答案 0 :(得分:0)

您无法访问dataR对象的原因是因为它与success方法返回的结果不在同一上下文中。

一种技术是在变量中保存对此的引用,如下所示:

var self = this;

using the jquery library!
    $(this.button).bind('click',{self:this},function(event) 
    {
        var that = event.data.self;
        alert(that.num);

    });

您还可以查看下面的帖子,我在其中详细介绍了“this”关键字。

http://azamsharp.com/Posts/57_I_mean__this__not__this_.aspx

答案 1 :(得分:0)

如果记忆对我有用......

this.dataR = msg; 

可能需要

getSuggestedData.dataR = msg

'this'引用将提供给jQuery的对象,需要引用原始对象。我忘记了你是否可以直接通过它的名字来访问它,或者如果你需要使用其他方法,请告诉我它是否有效。