问题调用ASP.NET AJAX WebServiceProxy.invoke()Javascript方法

时间:2009-05-11 02:55:56

标签: asp.net javascript ajax scriptmanager

我遇到了一些我编写的代码问题。我不得不匿名,但我可以解决问题。这个javascript在iframe中运行,是实例化的对象的一部分。问题特别是每次在调用invoke()时“类型'对象'无法转换为类型'函数'时,我都会遇到重复错误。但是,在IE8开发人员插件中,检查我传递的函数的类型(this.AJAXCallback),它清楚地表明它是一个被传递的函数。是否有任何特殊原因可能发生此错误?

MyObject.prototype.AJAXCallback=function(Data, e){
    //snip
};

MyObject.prototype.Init=function(){
    var a = window.top.window.Sys.Net.WebServiceProxy.invoke('/Data.asmx', 'GetData', false, { "IDCode":0 }, this.AJAXCallback, null);
    //snip
};

2 个答案:

答案 0 :(得分:1)

我发现了问题,但似乎不是我的问题。我在web.config文件中禁用了调试,并且错误已停止。调试打开后它也会回来,所以我认为可以说调试代码与我编写的非调试代码一样好。特别是,它是scriptmanager的JS文件之一。

答案 1 :(得分:-1)

它可能会产生问题,因为Callback是一个原型。您是否尝试在匿名函数调用中包装回调。

MyObject.prototype.Init=function(){
    var a = window.top.window.Sys.Net.WebServiceProxy.invoke('/Data.asmx', 'GetData', false, { "IDCode":0 }, function(data,e) { 
       this.AJAXCallback(data,e); 
    }, null);
    //snip
};