Connecting Tech Pros Worldwide Help | Site Map

xmlhttp problem using Mozilla ... responseText is always null

fochie
Guest
 
Posts: n/a
#1: Jul 23 '05
Greetings,

I'm having a problem when I try to GET a file from my server
via xmlhttp when using Mozilla. With IE I can get any type of file
fine, get/display headers fine, etc. With Mozilla, using the same
HTML/JS it always returns no data (xmlhttp.responseText is null).

When I try to get headers using Mozilla or display the http status code
I get some obscure exception in the javascript console that I've given
up on searching for an answer to ....

Error: [Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult:
"0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
http://myserver.com/xmlhttp.html? :: RSchange :: line 26" data: no]
Source File: http://myserver.com/xmlhttp.html?
Line: 26

I've tried coding my test app many ways based on the examples out there
and haven't been able to get it to run in Mozilla/FF yet.

If I do an alert on xmlhttp.responseText I get a blank alert pop up, if
I alert xmlhttp.responseText.length it's always zero using Mozilla.
Both alerts always work with the same HTML/JS when running in IE.

Beginning to think maybe I'm lacking something on the server side
related to Content-type being sent back that IE allows and Mozilla
doesn't(?)

Any assistance at this point would be greatly appreciated.

Thanks !
Steve

Here's a simple example that works in IE but returns null for
responseText in Mozilla when I run it ...

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JAVASCRIPT" type="text/javascript">
<!--
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE
versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}

function RSchange() {
if (xmlhttp.readyState==4) {
//if (xmlhttp.status == 200) {
//alert(xmlhttp.statusText); // this line chokes in Mozilla
alert(xmlhttp.responseText); //empty alert box using Moz
// }
}
}

function go() {
if (xmlhttp) {
xmlhttp.open("GET", "http://myserver.com/index.html", true);
xmlhttp.onreadystatechange=RSchange;
xmlhttp.send(null);
}
}
//-->
</script>

</head>
<BODY>

<FORM NAME='' ACTION='' onsubmit="return true;">
<INPUT TYPE="SUBMIT" VALUE='getit' onclick="go()"
</FORM>

</BODY>
</HTML>

Martin Honnen
Guest
 
Posts: n/a
#2: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null




fochie wrote:

[color=blue]
> I'm having a problem when I try to GET a file from my server
> via xmlhttp when using Mozilla. With IE I can get any type of file
> fine, get/display headers fine, etc. With Mozilla, using the same
> HTML/JS it always returns no data (xmlhttp.responseText is null).
>
> When I try to get headers using Mozilla or display the http status code
> I get some obscure exception in the javascript console that I've given
> up on searching for an answer to ....
>
> Error: [Exception... "Component returned failure code: 0x80040111
> (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult:
> "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
> http://myserver.com/xmlhttp.html? :: RSchange :: line 26" data: no]
> Source File: http://myserver.com/xmlhttp.html?
> Line: 26[/color]

Which line exactly is that line 26, how does the code in that line look
when you get that error message?
Are you using frames or popup windows?
[color=blue]
> I've tried coding my test app many ways based on the examples out there
> and haven't been able to get it to run in Mozilla/FF yet.
>
> If I do an alert on xmlhttp.responseText I get a blank alert pop up, if
> I alert xmlhttp.responseText.length it's always zero using Mozilla.
> Both alerts always work with the same HTML/JS when running in IE.
>
> Beginning to think maybe I'm lacking something on the server side
> related to Content-type being sent back that IE allows and Mozilla
> doesn't(?)
>
> Any assistance at this point would be greatly appreciated.
>
> Thanks !
> Steve
>
> Here's a simple example that works in IE but returns null for
> responseText in Mozilla when I run it ...
>
> <HTML>
> <HEAD>
> <SCRIPT LANGUAGE="JAVASCRIPT" type="text/javascript">
> <!--
> var xmlhttp=false;
> /*@cc_on @*/
> /*@if (@_jscript_version >= 5)
> // JScript gives us Conditional compilation, we can cope with old IE
> versions.
> // and security blocked creation of the objects.
> try {
> xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
> } catch (e) {
> try {
> xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
> } catch (E) {
> xmlhttp = false;
> }
> }
> @end @*/
> if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
> xmlhttp = new XMLHttpRequest();
> }
>
> function RSchange() {
> if (xmlhttp.readyState==4) {
> //if (xmlhttp.status == 200) {
> //alert(xmlhttp.statusText); // this line chokes in Mozilla
> alert(xmlhttp.responseText); //empty alert box using Moz
> // }
> }
> }
>
> function go() {
> if (xmlhttp) {
> xmlhttp.open("GET", "http://myserver.com/index.html", true);[/color]

Is http://myserver.com/index.html on the same server as the HTML
document with the script? What content type does the server deliver
index.html with?


--

Martin Honnen
http://JavaScript.FAQTs.com/
fochie
Guest
 
Posts: n/a
#3: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


Line 26 is the following -
if (xmlhttp.status == 200) { (sorry, I also put the comment on the
wrong line in the snippit above)

Not using frames.

The page I'm trying to retrieve is on the same server (same dir also)
as the html containing the xmlhttp call.

Not sure what content type is being used by the server for delivering
index.html. Is this an Ap[ache directive ?
Maybe I should issue an xmlhttp HEAD call using IE (since Moz fails
with the same error msg mentioned above if I try to do a HEAD request)
and see what Content type is being returned ?

Thanks for the reply !
Steve

Martin Honnen
Guest
 
Posts: n/a
#4: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null




fochie wrote:
[color=blue]
> Line 26 is the following -
> if (xmlhttp.status == 200) { (sorry, I also put the comment on the
> wrong line in the snippit above)
>
> Not using frames.
>
> The page I'm trying to retrieve is on the same server (same dir also)
> as the html containing the xmlhttp call.
>
> Not sure what content type is being used by the server for delivering
> index.html. Is this an Ap[ache directive ?
> Maybe I should issue an xmlhttp HEAD call using IE (since Moz fails
> with the same error msg mentioned above if I try to do a HEAD request)
> and see what Content type is being returned ?[/color]

If that is an HTML page you can simply load it in a Mozilla window and
then check page info for details on the content type Mozilla receives.

--

Martin Honnen
http://JavaScript.FAQTs.com/
fochie
Guest
 
Posts: n/a
#5: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


When I issue the following HEAD equest in IE it returns -
Content-Type: text/html
If I issue the same request in Moz it throws this in the javascript
console-

Error: [Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.getAllResponseHeaders]"
nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
http://timegonebuy.com/javascript_XML.html? :: anonymous :: line 123"
data: no]
Source File: http://timegonebuy.com/test_javascript_XML.html?
Line: 123

This is Line 123 -

alert('header returned is ' +xmlhttp.getAllResponseHeaders())

Here's what was issues -

try {

xmlhttp.open("HEAD", "http://myserver.com/index.html",true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
alert('header returned is ' +xmlhttp.getAllResponseHeaders())
}
}
xmlhttp.send(null)
}
catch (e) { alert('failed'); }

fochie
Guest
 
Posts: n/a
#6: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


bring up the html in Mozilla and using Page Info shows type - text/html

VK
Guest
 
Posts: n/a
#7: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


How do you start your script? Is it a form button click? Of what type?

fochie
Guest
 
Posts: n/a
#8: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


from the snippit above ... this is how the function gets invoked ...
maybe I have this twisted up
since it's type=submit and also has an onclick ? -
..
..
..
</head>
<BODY>
<FORM NAME='' ACTION='' onsubmit="return true;">
<INPUT TYPE="SUBMIT" VALUE='getit' onclick="go()"
</FORM>
</BODY>
</HTML>


Thanks for the reply ... hope someone can help me get past this soon
.... been bangin my head against it for over a week

fochie
Guest
 
Posts: n/a
#9: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


THAT WAS THE PROBLEM ! .... I changed it to "type=button" and now the
file is received/displayed in Mozilla ... thanks for the pointer !!!!!
... obviously I need to pay more attention to the basic HTML pieces as
well ... IE must be forgiving in this scenario .... thanks again !!!!

VK
Guest
 
Posts: n/a
#10: Jul 23 '05

re: xmlhttp problem using Mozilla ... responseText is always null


Glad it helped.
Just to make sure you got the problem right (to not repeat it):

...
form.submit();
some code after
....

or

....
document.location.hred = someURL;
some code after
....

are equally wrong, because the first statement clears the current DOM /
script data. It's like trying to continue the conversation with a
person after you shoot him in the temple. Some "post mortum" may occur
(script is still working) because a part of code was retained in the
program cache (orphaned script). But you cannot make any reliable
accumptions about it.

Closed Thread


Similar JavaScript / Ajax / DHTML bytes