By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,978 Members | 1,831 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,978 IT Pros & Developers. It's quick & easy.

xmlhttp problem using Mozilla ... responseText is always null

P: n/a
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>

Jul 23 '05 #1
Share this Question
Share on Google+
9 Replies


P: n/a


fochie wrote:

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
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?
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);


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/
Jul 23 '05 #2

P: n/a
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

Jul 23 '05 #3

P: n/a


fochie wrote:
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 ?


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/
Jul 23 '05 #4

P: n/a
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'); }

Jul 23 '05 #5

P: n/a
bring up the html in Mozilla and using Page Info shows type - text/html

Jul 23 '05 #6

P: n/a
VK
How do you start your script? Is it a form button click? Of what type?

Jul 23 '05 #7

P: n/a
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

Jul 23 '05 #8

P: n/a
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 !!!!

Jul 23 '05 #9

P: n/a
VK
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.

Jul 23 '05 #10

This discussion thread is closed

Replies have been disabled for this discussion.