There is a problem with XMLHttpRequest and Firefox when the
function that makes the asynchrounous request is called from another window. The URL
of the window does not change to the next page in which i am displaying
the response.
Just playing around with xmlhttp at the moment. I was just wondering if there is any reason (browser compatibility etc) the response data has to be formatted in xml, or can I send csv or whatever else if the handler is up for it?
Currently transitioning from a shared host to a dedicated server. The same code that works on the old server is not working on the dedicated server. It is a simple AJAX request like:
<code> function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } }
With the code as is above, the requests works fine in IE. With Firefox it throws a 403 on the page. A call to the response.php page with parameters runs correctly outside of AJAX. Changing all POST requests to GET resolves the issue, but I would prefer not to have to change ALL POST requests to GET requests.
Does anyone know of a setting on the new server that can cause FireFox (1.5.x and 2.0.x) to return a 403 with an AJAX post call?
I wrote an "ajax" script that pulls dynamic content into a div container via xmlhttp. There is a variety of lists on this page that are all ajax. Basically the up/down arrows in the Music, Photos, Users, Community etc boxes have this javascript funtion that replaces the innerHtml properties of a div to some response data from an asp.net object.
In IE these up/down arrows works fine and pull in data, but in FireFox the divs come up with "Undefined" in the div instead of the data.. Code:
We have the following situation - when Ajax request is sent what's being returned by the server is usually an XML (which is used for DOM updates) but sometimes it's HTML which is a whole new page that should replace an existing one. I.e when we issue an Ajax request we don't know what will be returned and analyze the response to act accordingly.
Now, the way to replace the current document with a new one used to be easy and portable for both browsers (we're only supporting IE6 and Firefox 1.5):
document.open(); document.write( head ); document.write( body ); document.close();
where "head" and "body" are two parts of the result HTML. We had to cut it to two (rather than going simply with document.write( NewHTML )) because of IE - our head section contains references to external JavaScript files (<script type="text/javascript" src="sth.js"></script>) and IE only loads them when document.write() call ends. So if body contains any script block (<script type="text/javascript".. </script>) using any of JS referenced by head - IE would fail with something like "Resource undefined" if we push the whole new HTMl in one go by using document.write( NewHTML ). But it worked perfectly fine in Firefox, meaning
did the job just fine. What's even more important - it also evaluated all JavaScripts correctly - both in external files referenced by the head and in the JS blocks embedded in the body.
Until Firefox 1.5.0.6/7 where things stopped working completely - our lovely and used-to-be portable code
document.open(); document.write( head ); document.write( body ); document.close();
caused Firefox to loose all CSS/JS and display an HTML only page (as if CSS/JS were disabled). Removing document.close(); improved the situation a bit by displaying the page with CSS this time but still - *no* JavaScript was evaluated (meaning, JavaScript blocks embedded in the document's body were not evaluated).
I took a different path from this point by pushing the new content to document's head and body "innerHTML". It worked but not for JS evaluation - I had to do that manually. To evaluate the JS referenced in the head section of the document - I've traversed the head's DOM tree while looking for the "script" nodes, then downloaded all of them one by one using a synchronous Ajax calls (don't laugh!) and eval()-ed the response. To evaluate JS blocks embedded in the body of the document - I've traversed the body's DOM tree while looking for the "script" nodes and eval()-ed them.
The problem is following: eval()-ing external JS files after downloading them with Ajax doesn't work in 100% of cases - some statements using Prototype functions fail to execute ("prototype.js" is one of external JS files referenced in the head). Anyway, I'm almost sure that what I'm doing is plain wrong, i.e it's sounds silly to download all JS files referenced in the head and eval() them !
So how do I fix it ? Simply put - how do I replce the content of the document to the completely new one received as a response to asynchronous Ajax call ? The new content conatins doctype, head, body - it's a completely new page. And all JS referenced in the head and embedded in the body should be evaluated as well.
I really wish
document.open(); document.write( head ); document.write( body ); document.close();
was working in Firefox as before. Is it simply a Firefox bug, should I submit it ? Btw, document.open.write.write.close() works just fine in IE6.
when I use Firefox to run my application (this involves sending an IFRAME request to the servlet and handling the response), there is no delay in displaying the data after each response. But when I use IE, there seems to be a 1-2 second delay. The script sends a request using IFrame, goes through a loop to return script tags containing data to the browser, and then data is displayed by the browser and a new request is sent. For IE, when a new request is sent, the delay in receiving the response is quite noticeable.
Simple ajax call seems to have some issues in Firefox. The "onComplete:" is called BEFORE the response is returned by the call. Is there a coding issue or a work around?
var ajax = new Ajax.Request( url, {method: 'post', parameters: params, onComplete: evalInfo });
function evalInfo( request ) { // do stuff with request }
Should I have a timer that checks the request state before exec the evalInfo?
I have an ajax post which returns a large html response. It is getting truncated at 98784 characters everytime. Is there a limit to a response size or a way around this?
I'm trying to do use XMLHTTP to do a POST in the following JavaScript snippet.
var xml = new ActiveXObject('Microsoft.XMLHTTP'); xml.open("POST", "http://some/url/", false); xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send("username=myusername&password=mypassword"); document.write(xml.responseText);
This works fine in Internet Explorer 6 SP2. However, I would like to use https, rather than http. When I change the URL to https and reload the page, I get an error: "The download of the specified resource has failed". As a test, I tried running the same code in Firefox (changing the first line to "var xml = new XMLHttpRequest()"), and this worked for both http and https perfectly, although using https causes a dialog box to pop up asking the user to accept the SSL certificate. Unfortunately, I really need this to work in IE.
I found a couple of discussions on Usenet about this, but none that seemed to give me a clear answer to this issue. Does anybody know what might be wrong or how I might fix it?
I've been looking into the possibility of using XMLHTTP for my enterprise application but I still have a question.
When you send the request to the server, how does the server know how to handle the request? (i.e. how do I specify what method to call in my java servlet?)
I'd appreciate any help on this.....I've only got a vaey basic knowledge of javascript and I am fluent in java.
Using XMLHTTP and DOM I'm able to load new HTML page content.
I'd now like to load small snippets of javascript with the HTML markup and have that <script> incorporated into the page. If any of the loaded script exists outside a function definition (eg: a call to a function), I'd like that code to be executed as soon as its added to the DOM.
Can anyone suggest the best way to do this? I've Googled but not found anything comprehensive. Do I need to use the eval() method or is there a better way?
I'm writing a script to send posts to a web forum. I find that MSXML2.XMLHTTP object could communicate with web server but I can't make it send cookie which is needed for post authentication. I have searched google and read some articles including: Code:
I've picked up a copy of "Foundations of Ajax" and was working through one of the initial examples and ran into a problem. xmlhttp.status always returns 0. I can run the following code and get the expected text returned from the server but only if I comment out the conditional that checks xmlhttp.status
<script type="text/javascript"> var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); alert('ActiveX xmlhttp object instantiated'); }
else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); alert('Non-IE xmlhttp object instantiated'); } }
I don't understand how xmlhttp.responsetext can return the text in the file if xmlhttp.status returns 0. I'm running apache 2.055 on my local xp box. apache is a stock cfg except for vanilla changes I made to add php5.
i want to postload javscript from another javascript. This works fine in firefox and IE6 for macIE i can use an Iframe to load the code and inject it with insertAdjacentHTML The problems arise with safari and opera. Both load the new code with XMLHttpRequest, but the code is no 'executable'
To make this possible on IE i had to use the magic 'DEFER' attribute. (Sync or Async ist not the issue)
I'm trying to translate an asp application, i have some difficulties with a particular line : --- Set myxml = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0") ---
Classical ajax exemples rather use : [...] req = new ActiveXObject("Microsoft.XMLHTTP");
.... But i'm not sure the ActiveXObject is identical to the original : Set myxml = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
I'm not an asp expert, can you give me some tips on that question ?
I am trying to use AJAX and JSON to do this. I have copied an example of using HttpRequest Object as the backbone of this from http://www.w3schools.com/dom/dom_http.asp. Further, I am enclosing both of my files here, in full as opposed to mere snippets. This code does what I wish it to do except:
1. It does not update when getdata.php is rewritten. On non MSIE broswers, it shows when first invoked, but not subsequently. 2. It fails altogether under MSIE (6.026 SP1 || SP2) -- I never get xmlhttp.readyState==4 under MSIE.
I create an ActiveXObject("Msxml2.XMLHTTP") from my HTML page to submit (i.e. post) XML to a server. I can see the content of the XML response via javascript alert(xmlhttp.responseText). Is there a way to display the content of xmlhttp.responseText on a new page?
I tried document.write(xmlhttp.responseText) but this does not display the XML structure....
Say x in a XML Http Request Object ... meaning it's either XMLHttpRequest (firefox) or ActiveXObject (IE)
This line of code works in firefox... x.someProp = "someValue"; alert(x.someProp);
But in IE I get "Object doesn't support this property or method" I need to place a custom property on the object. Is there any way I can do that in IE?