Problema chamando ASP.NET AJAX WebServiceProxy.invoke () método Javascript
-
21-08-2019 - |
Pergunta
Eu estou tendo um problema com algum código que eu escrevi. Eu tive que tornar anônimo, mas eu posso dar o problema. Este javascript é executado dentro de um iframe, e é parte de um objeto que é instanciado. O problema, em particular, é que recebo um erro de repetir a cada vez que "Tipo 'Object' não pode ser convertido para o tipo 'função'" na chamada invoke (). No entanto, no revelador addon IE8, verificando o typeof da função de eu passar (this.AJAXCallback), diz claramente que é uma função que está sendo passado. Existe alguma razão particular, este erro pode estar ocorrendo?
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
};
Solução
Eu encontrei o problema, e não parece ser da minha parte. I depuração desativado no arquivo web.config, e o erro parou. Ele também voltou depois de depuração foi ligado, então eu acho que é seguro dizer que o código de depuração não funciona tão bem com o que eu escrevi que o código não-debug fez. Em particular, foi um dos arquivos JS do ScriptManager.
Outras dicas
Pode-se dar problemas porque o retorno de chamada é um protótipo. Você tentou envolver o retorno de chamada em uma chamada de função anônima.
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
};