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

调用ASP.NET AJAX WebServiceProxy.invoke()Javascript方法时出现问题,asp.net,javascript,ajax,scriptmanager,Asp.net,Javascript,Ajax,Scriptmanager,我写的一些代码有问题。我不得不匿名,但我可以解决这个问题。此javascript在iframe中运行,是实例化对象的一部分。特别的问题是,每次调用invoke()时“Type'Object'无法转换为Type'Function'”时,我都会收到一个重复的错误。然而,在IE8开发者插件中,检查我传递的函数的类型(this.AJAXCallback),它清楚地表明它是一个正在传递的函数。是否存在发生此错误的特定原因 MyObject.prototype.AJAXCallback=function(D

我写的一些代码有问题。我不得不匿名,但我可以解决这个问题。此javascript在iframe中运行,是实例化对象的一部分。特别的问题是,每次调用invoke()时“Type'Object'无法转换为Type'Function'”时,我都会收到一个重复的错误。然而,在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
};

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

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
};

我发现了问题,但似乎不是我的问题。我在web.config文件中禁用了调试,错误停止。它也是在调试打开后返回的,所以我认为可以肯定地说,调试代码与我编写的代码的工作效果不如非调试代码。特别是,它是scriptmanager的JS文件之一。

我确实尝试过用一个空函数替换它,如下所示,但我还是得到了相同的错误:var a=window.top.window.Sys.Net.webservicecoproxy.invoke('/Data.asmx',GetData',false,{“IDCode”:0},函数(a,b){;},null);