doing a simple page webmethod call an a page via PageMethods works fine in
ie7 & opera9
the same call on firefox ( and I assume netscape ) generates the following
error :
Error: [Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111
(NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
http://hgha.gerzio.ca/ScriptResource.axd?d=3Ot8FdrYMQ58gwjNF6tbd8V5YtBKDtb8a6qI5
cjRJWaZBQhYu2jjDRnc7N0IverhgY8x7LACpAIvqLPvNyERF0ui1Tz1p-s2eu0h41S_qMA1&t=633179
517344763787
:: Sys$Net$XMLHttpExecutor$get_statusCode :: line 4166" data: no]
Source File:
http://hgha.gerzio.ca/ScriptResource.axd?d=3Ot8FdrYMQ58gwjNF6tbd8V5YtBKDtb8a6qI5
cjRJWaZBQhYu2jjDRnc7N0IverhgY8x7LACpAIvqLPvNyERF0ui1Tz1p-s2eu0h41S_qMA1&t=633179
517344763787
Line: 4166
The script code this points to is :
//-----------------------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------
// MicrosoftAjax.js
// Microsoft AJAX Framework.
. . .
function Sys$Net$XMLHttpExecutor$get_statusCode() {
/// <value type="Number"></value>
if (arguments.length !== 0) throw Error.parameterCount();
if (!this._responseAvailable) {
throw
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse,
'get_statusCode'));
}
if (!this._xmlHttpRequest) {
throw
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler,
'get_statusCode'));
}
>> return this._xmlHttpRequest.status;
}
Google turns up a number of references to this problem in general but no
fixes for asp.net ajax in particular.
Since this problem is caused by a problem buried in the microsoft ajax code
I am at a loss as to how to proceed.
Do we just drop ajax for firefox & netscape users until MS puts out a fix ?
Or is there a fix out there that I haven't stumbled across yet ?
Gerry
germ - 01 Jul 2007 01:09 GMT
so ... what .. is this a dirty little secret that I wasn't supposed to
mention ?
Is no one else using asp.net ajax web service calls or are they just
ignoring any browsers that generate this error ?
> doing a simple page webmethod call an a page via PageMethods works fine in
> ie7 & opera9
[quoted text clipped - 43 lines]
> Or is there a fix out there that I haven't stumbled across yet ?
> Gerry
germ - 04 Jul 2007 20:51 GMT
ok - just for future reference in case anyone else runs into this issue
the error occurs when the javascript function invoking the PageMethod is
called from a different window
( mozilla seems to be maybe getting confused as to which objects live in
which window ? - or not )
<script type="text/javascript">
var imagebrowser =null;
function SelectImage()
{
. . .
imagebrowser =
window.open("Selector.aspx","Selector","menubar=0,minimizable=0,modal=1,status=0,toolbar=0,width=600,height=600");
}
/*
PageMethods call will fail under mozilla if called from this
function when called from another window : opener.SelectCallback(
selectdURL );
splitting this into 2 functions and using timer to invoke second
part , letting this & functions complete solves the problem
function SelectCallback( url )
{
imagebrowser.close();
imagebrowser=null;
. . .
PageMethods.DoSomething( url , DoSomethingCallback , Timeout ,
Error );
}
*/
function SelectCallback( url )
{
imagebrowser.close();
imagebrowser=null;
setTimeout("SelectCallback2('"+url+"')",0);
}
function SelectCallback2( path )
{
. . .
PageMethods.DoSomething( path , DoSomethingCallback, Timeout ,
Error );
}
function DoSomethingCallback( rslt )
{
. . .
}
function Timeout( txt )
{
alert('Timeout '+txt);
}
function Error( txt )
{
alert('Error '+txt);
}
</script>
<input type="button" value="Select Image" onclick="GetImage();return 0;" />
> so ... what .. is this a dirty little secret that I wasn't supposed to
> mention ?
[quoted text clipped - 49 lines]
>> Or is there a fix out there that I haven't stumbled across yet ?
>> Gerry