Native XMLHTTPRequest object


Hello, I’m Sunava Dutta and I am a Program Manager in the Internet Explorer team.

I’m excited to mention that IE7 will support a scriptable native version of XMLHTTP. This can be instantiated using the same syntax across different browsers and decouples AJAX functionality from an ActiveX enabled environment.

What is XMLHTTP?

XMLHTTP was first introduced to the world as an ActiveX control in Internet Explorer 5.0. Over time, this object has been implemented by other browsing platforms, and is the cornerstone of “AJAX” web applications. The object allows web pages to send and receive XML (or other data) via the HTTP protocol. XMLHTTP makes it possible to create responsive web applications that do not require redownloading the entire page to display new data. Popular examples of AJAX applications include the Beta version of Windows Live Local, Microsoft Outlook Web Access, and Google’s GMail.

Charting the changes: XMLHTTP in IE7 vs. IE6

In IE6 and below, XMLHTTP is implemented as an ActiveX object provided by MSXML.

In IE7, XMLHTTP is now also exposed as a native script object. Users and organizations that choose to disable ActiveX controls can still use XMLHTTP based web applications. (Note that an organization may use Group Policy or IE Options to disable the new native XMLHTTP object if desired.) As part of our continuing security improvements we now allow clients to configure and customize a security policy of their choice and simultaneously retain functionality across key AJAX scenarios.

IE7’s implementation of the XMLHTTP object is consistent with that of other browsers, simplifying the task of cross-browser compatibility.  Using just a bit of script, it’s easy to build a function which works with any browser that supports XMLHTTP:

if (window.XMLHttpRequest){

          // If IE7, Mozilla, Safari, etc: Use native object
          var xmlHttp = new XMLHttpRequest()

}
else
{
if (window.ActiveXObject){

          // …otherwise, use the ActiveX control for IE5.x and IE6
          var xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
          }

}

Note that IE7 will still support the legacy ActiveX implementation of XMLHTTP alongside the new native object, so pages currently using the ActiveX control will not require rewrites.

I look forward to hearing any feedback and suggestions.

- Sunava

Comments (138)

  1. Hasani says:

    this made my day :)

  2. Anonymous says:

    Great news and very forward-looking.

  3. Anonymous says:

    IE7 sounds like it is shaping up quite nicely. Thanks!

    So… when’s that public beta? ;-)

  4. Anonymous says:

    This is great news! I have been unable to utilize AJAX in my projects at work because of the strict computing environment we develop for (no ActiveX allowed).

  5. Anonymous says:

    Sweet. I guess most XMLHTTPREQUEST code already looks like your example anyhoo, so everyone’s good to go. Good show :)

  6. Dave says:

    Sounds good! Will the native object allow you to .setRequestHeader for cookies? The current ActiveX object has a documented bug that requires you to set the header twice.

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q234486

    Also, will this new native object be cognizant of the the "Access data sources across domains" security option (URLACTION_CROSS_DOMAIN_DATA)? In particular, I’d like to use it in intranet situations where it shouldn’t complain about cross domain data.

  7. Anonymous says:

    This looks promising :)

  8. Maurits says:

    The sample looks like it has scoping issues. Shouldn’t it be…

    var xmlHttp = null;

    if (window.XMLHttpRequest){

    // If IE7, Mozilla, Safari, etc: Use native object

    xmlHttp = new XMLHttpRequest(); // no var

    }

    else if (window.ActiveXObject){

    // …otherwise, use the ActiveX control for IE5.x and IE6

    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // no var

    } else {

    // no XMLHTTP… leave as null

    }

  9. Anonymous says:

    Will it support progress reporting like the firefox implementation?

  10. Björn says:

    Maurits, there are only two scopes in JS: global and function :]

  11. Anonymous says:

    Is there any performance difference between the two in IE 7?

  12. Anonymous says:

    A question that is related to this topic: in most browsers, the XMLHTTPRequest object (or MSXML.XMLHTTP for IE, any version) will only populate the responseXML property if the returned document was text/xml. I was attempting to use AJAX to call some web services, and ran into the problem that SOAP 1.2 uses the application/soap+xml mime-type, which means the responseXML property is not populated (the only browser I know of that will populate the responseXML property anyway in this case in Firefox 1.5 (not older versions)). There are ways around this (create a DOMDocument in IE, override the returned content type in Firefox, Opera I don’t know actually) but the hassle was too big and in the end I just resigned to using SOAP 1.1 exclusively.

    Will we see support for alternative XML mime-types other than text/xml in IE7’s XMLHTTPRequest document?

  13. Anonymous says:

    Maurits: Yup, this code sample isn’t complete– for instance, it doesn’t actually send a request. :-) But moving the var out to a global scope probably would be a better design. You’d also want to also want to check the result of the new ActiveXObject call.

    There’s also a good primer on XMLHttp here: http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro2/?ca=dgr-lnxw07AJAX-Request

  14. Anonymous says:

    Great article, I want more.

  15. Anonymous says:

    I’ve been messing with the leaked IE7 beta 2 and I can say that I’m very happy with the native XMLHTTPRequest implementation. The requests feel faster ( memory use must be far less ) and it works as advertised.

  16. Anonymous says:

    GREAT!

  17. Anonymous says:

    I know lots of people were complaining about IE7 being XP and Vista only, and I’m not here to do that. But I do have a question about that. What exactly is XP specific about the XP version that will prevent it from being usable on older versions of Windows? Will that same element(s) prevent IE7 from running on Linux under WINE or not? Because I can test almost all current browser rendering engines from Linux and I wanted to know if I would be able to test IE7’s. If you want me to do web design on Windows, please port khtml and webcore to Windows. ;-)

  18. Anonymous says:

    BTW, I forgot to mention that this is very good news. ^__^

  19. Anonymous says:

    Great post…

    One thing I’d like to see for web designers and developers is an engine switcher for IE for various versions of the HTML rendering engine.

  20. Anonymous says:

    Could someone with IE7 test this bug?

    http://www.quirksmode.org/bugreports/archives/2006/01/IE_wont_allow_documentcreateElementstyle.html

    If the testpage as a yellow background then it’s working. If you get a js error, and a red background then it is not :)

    Cheers

  21. Anonymous says:

    <<What exactly is XP specific about the XP version that will prevent it from being usable on older versions of Windows?>>

    Windows XP introduced a significant number of new APIs over Windows 2000, and it would have been a significant effort to offer the same functionality on Win2k. Much more importantly, the Windows 2000 lifecycle (see microsoft.com/lifecycle) meant that it would be of limited value to build IE7 for that platform, since average users would not have a support agreement that let them install it.

    @rossh: The page you linked to doesn’t have a "Test" link on it in IE7 because the page uses illegal HTML and fails to escape the < and > tags into &lt; and &gt;. Viewing the source, I found the repro link and I can confirm that IE7 still renders the page without a yellow background (but it’s not red either). I’m not an expert on the DOM, but it seems like there are probably better ways to achieve the intended effect.

  22. Anonymous says:

    <<What exactly is XP specific about the XP version that will prevent it from being usable on older versions of Windows?>>

    Windows XP introduced a significant number of new APIs over Windows 2000, and it would have been a significant effort to offer the same functionality on Win2k. Much more importantly, the Windows 2000 lifecycle (see microsoft.com/lifecycle) meant that it would be of limited value to build IE7 for that platform, since average users would not have a support agreement that let them install it.

    @rossh: The page you linked to doesn’t have a "Test" link on it in IE7 because the page uses illegal HTML and fails to escape the < and > tags into &lt; and &gt;. Viewing the source, I found the repro link and I can confirm that IE7 still renders the page without a yellow background (but it’s not red either). I’m not an expert on the DOM, but it seems like there are probably better ways to achieve the intended effect.

  23. Anonymous says:

    Hasn’t this been said already?

    I’m interested if IE7 impelements the standard way an XML DOM is created.

  24. Anonymous says:

    Great news, in fact this really makes me sit up and take a hard look at IE7. What other jewels has the IE team been hiding?

  25. Anonymous says:

    Can you have an option so that any page trying to use the activex version will always get the native if they are interchangeable. This option would not be enabled by default (otherwise old "ajax" pages might not update their code). I like the idea to keep using legacy pages but keep the activex turned off.

  26. Anonymous says:

    @EricLaw [MSFT]: Yup, that bug report page does have an error, unfortunately I can’t edit it ;).

    More importantly is the bug in the test page. It appears IE7 still has this rather glaring issue. Is there an appropriate avenue or person that I can direct a bug report to?

    Whether or not this is the "best" way to achieve the desired effect is a bit of an evasive question really ;) It’s a bug test page, testing a pretty straightforward DOM function.

  27. Anonymous says:

    Nice! One more thing which is common in IE, Mozilla, Opera and others … :)

  28. Anonymous says:

    Very good! Thanks!

  29. Anonymous says:

    Offtopic, but just found out that the developer toolbar in IE6 (XP SP2) has a glitch: resize to 800*600 gives a different width to if you /actually/ change your resolution to 800*600 and maximise the window.

  30. Anonymous says:

    @rossh: your code uses "createTextNode", passing as the argument a DOMString containing comment tags. Should you not be using "createComment"? I don’t know whether that works or not, but currently your code is testing whether "createTextNode" will realise that the DOMString argument it receives should be parsed into a commentNode, which isn’t what you set out to test.

  31. Anonymous says:

    > > What exactly is XP specific about the XP version that will prevent it from being usable on older versions of Windows?

    > EricLaw [MSFT]: Windows XP introduced a significant number of new APIs over Windows 2000, and it would have been a significant effort to offer the same functionality on Win2k.

    Would these APIs be being much used for the rendering rather than the security side though, or is the refactoring too widespread across the entire engine?

    I can’t imagine that there are many Windows APIs that are being used for the sort of CSS rendering issues mentioned at:

    http://blogs.msdn.com/ie/archive/2005/07/29/445242.aspx

    Issuing an update of Trident/mshtml.dll for IE6 to fix up the rendering part would at least take a large amount of pain out of web developers’ lives, because the fact is that Win2K (and thus IE6) is going to be out there for the next five years.

    Eric, Is this truly not possible?

  32. Anonymous says:

    Great (but expected) news!

    One question: When a public beta is released, will I be able to install IE7 Beta alongside IE6? If not, is there an easy way to uninstall IE7 to fallback to IE6?

    Thanks,

    Jeff

  33. Anonymous says:

    Generally, my AJAX applications do the following:

    1. Build XML document containing details of request.

    2. Send XML document to server

    3. Retrieve XML from server and unload into an XML document

    4. Transform XML document to HTML

    5. Insert HTML fragment into DHTML DOM

    I think it’s great that the XMLHTTPRequest object is now native. However, I see a couple of other objects that aren’t yet native that would be required in order to perform the basic steps outlined above, in particular:

    var xmlDoc = new XmlDocument(); //Msxml2.DOMDocument.5.0

    and

    var oXsltProc = new XsltProcessor(); //Msxml2.XSLTemplate.5.0

    Are these remaining pieces also scheduled to become native?

    Thanks!

  34. Anonymous says:

    Anyone else find it real funny, that the original post, added a link to Windows Live Beta, but not to Gmail?

    (http://www.gmail.com/)

    It’s the little (cough/) oversights like this, that make you need a $120 Million dollar "makeover" marketing campaign.

    (http://seattlepi.nwsource.com/business/256523_msftads21.html)

    That said, glad to see the native support for this (btw, this is OLD news!, yikes!)

    @Jeff Schiller: I too want to know this, because there is no way I’m upgrading, if I can’t downgrade.

    @Jeff Lewis: Ditto, will the progress reporting be fixed? this is really anoying in IE6.

  35. Anonymous says:

    anime4christ: "Because I can test almost all current browser rendering engines from Linux and I wanted to know if I would be able to test IE7’s. If you want me to do web design on Windows, please port khtml and webcore to Windows."

    I dont think microsoft can prevent the use of IE on wine because of antitrust lawsuits. But the question will wine be able to run it, because Wine cannot fully emulate WinXP. We’ll se when the public beta comes out. There is a KHTML-win32 project (http://khtml-win32.sourceforge.net/), but that seems to be abandoned.

  36. Anonymous says:

    @Jeff Schiller and the others:

    Make IE6 standalone and then upgrade to IE7 when you’ll get it.

    you just need to copy this files to a folder of your choice (almost all of them are in the system32 folder)

    browseui.dll

    dispex.dll

    iexplore.exe

    inetcpl.cpl

    jscript.dll

    mshtml.dll

    mshtml.tlb

    shdocvw.dll

    urlmon.dll

    vbscript.dll

    xpsp2res.dll

    and do not forget to create a empty file inside that folder called:

    iexplore.exe.local

    I wonder why MS is so reluctant to let you do this with a simple checkbox during the install!

    I’ve been running IE5.0, IE5.5 and IE6.0 standalone for some time now. That’s the simplest way to test your webpages on all of them.

  37. Anonymous says:

    I know there are backwards compatibility issues, but is there any chance

    of setting "this" properly in the onreadystatechange method of the

    XMLHttpRequest object?

    if (window.XMLHttpRequest != null)

    x = new XMLHttpRequest;

    else

    x = new ActiveXObject(‘MSXML2.XMLHTTP’);

    x.open(‘GET’,’/index.html’);

    x.onreadystatechange = function() {

    alert(x.readyState+': x===this ? ‘ + (x===this) + ‘rn’ +

    ‘x===window ? ‘ + (x===window) + ‘rn’ +

    ‘this===window ? ‘ + (this===window) + ‘rn’ + this.readyState);

    }

    x.send(”);

    There is no reason (to me) that "this.readyState" should be undefined

    there, except that it has historically been broken that way.

  38. Anonymous says:

    how about:

    var xmlHttp = (window.XMLHttpRequest) ?

    new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

    I love one liners.

  39. Anonymous says:

    Sunava

    Is the new XMLHTTPRequest actually a new implementation, or is it just a wrapper around the ActiveX object?

  40. ieblog says:

    NocturnDragon,

    If you do that, you put your system in an unsupported state. If you read back on the blog, you will see that when the last security patch came out, some people reported a problem here with it. It turned out, in the end, that they had installed IE6 and IE7 in a side by side scenario and put their system into a state that created problems for them. It is not recommended.

    – Al Billings [MSFT]

  41. Anonymous says:

    Can you patch IE6 then? And while your at it, not do any more non-standardized implementations?

  42. Anonymous says:

    It is a real shame that you do not support DOMParser, XMLSerializer and XSLTProcessor (or DOM3 XPath). Without these web applications will continue to depend on ActiveX objects.

  43. Anonymous says:

    I usually don’t like you guys. Today, I like you. Though I do not use XMLHTTPREQUEST too often in my work, this shows you are truely interested in making the web a more compatible place for developers, whether it’s in HTML, CSS, or JS. Keep it up.

  44. Anonymous says:

    And what about the DOM event registration model ?

  45. Anonymous says:

    From what I remember, the XMLHttpRequest object in IE didn’t support the onload and onerror events, but rather used the onreadystatechange.

    Is the native XMLHttpRequest implementation going to support these?

    What other APIs will be supported? What specification will it be following?

  46. Anonymous says:

    @Micah: "But the question will wine be able to run it, because Wine cannot fully emulate WinXP. We’ll se when the public beta comes out. There is a KHTML-win32 project (http://khtml-win32.sourceforge.net/), but that seems to be abandoned."

    That’s exactly what I want to know from MS, will IE 7 have some sort of XP sniffing that will prevent it from running on WINE? The problem with the KHTML-win32 is I can’t use it right now, so I have to use it on Linux. That’s one of the reasons I gave Linux a go, cuz I needed to test my sites in Konqueror, but now I’m hooked. Me likes the penguin. =D

  47. Anonymous says:

    "That’s one of the reasons I gave Linux a go, cuz I needed to test my sites in Konqueror, but now I’m hooked. Me likes the penguin. =D"

    I am with you there. I have no problem with Windows, I just prefer to be able to play with my system. I am still relatively new to it, I have been using GNU/Linux for a couple years now. I can honestly say I have no intentions of using Windows on any of my systems.

    With that said, I am a web developer. Cross-browser compatability is a huge factor in web design. I’d like to be able to run it under WINE :-)

  48. Anonymous says:

    This seems to work well for me:

    // Emulate the native XMLHttpRequest object of standards compliant browsers

    if (!window.XMLHttpRequest) {

    window.XMLHttpRequest = function () {

    return new ActiveXObject(‘Microsoft.XMLHTTP’);

    }

    }

  49. Anonymous says:

    "# re: Native XMLHTTPRequest object

    Tuesday, January 24, 2006 10:05 AM by Andrew Eberhard

    Generally, my AJAX applications do the following:

    1. Build XML document containing details of request.

    2. Send XML document to server

    3. Retrieve XML from server and unload into an XML document

    4. Transform XML document to HTML

    5. Insert HTML fragment into DHTML DOM

    I think it’s great that the XMLHTTPRequest object is now native. However, I see a couple of other objects that aren’t yet native that would be required in order to perform the basic steps outlined above, in particular:

    var xmlDoc = new XmlDocument(); //Msxml2.DOMDocument.5.0

    and

    var oXsltProc = new XsltProcessor(); //Msxml2.XSLTemplate.5.0

    Are these remaining pieces also scheduled to become native?

    Thanks! "

    Andrew,

    Thanks for the feedback, great recommendation, we realize we need to incorporate other objects into our native JS apis and will continue to work on this.

  50. ieblog says:

    Jeff Schiller asks:

    "One question: When a public beta is released, will I be able to install IE7 Beta alongside IE6? If not, is there an easy way to uninstall IE7 to fallback to IE6?"

    We do not support side by side installs. You will be able to uninstall IE7 from XP if you install it by using Add/Remove Programs.

    – Al Billings [MSFT]

  51. Anonymous says:

    <<Eric, Is this truly not possible? >>

    @Thomas– Anything is possible, of course, but as I noted, there are both API and lifecycle limitations which prevented us from doing an IE7 for Windows 2000. As a consequence of not shipping on that additional platform, we had more time to do fixes, features, and testing on the platforms we are shipping on.

    <<Anyone else find it real funny, that the original post, added a link to Windows Live Beta, but not to Gmail?>>

    @Uslov– This wasn’t really an oversight. GMail doesn’t currently appear to offer web-based signups, so it didn’t seem as worthwhile to link to them. If you’re interested in trading Google your cell phone number in order to get a signup code, see https://www.google.com/accounts/SmsMailSignup1

    @NocturnDragon– As noted above, we don’t support side-by-side. There are technical problems inherent in the setup you’ve described; specifically the configuration you’re talking about uses objects from both IE6 and IE7, due to how COM works. You can use Process Explorer from http://www.sysinternals.com to verify that some COM objects are loaded from the system folders even when you’re running with a .local.

  52. Anonymous says:

    I’m very impressed with how IE7 is coming along. I hate to say it, but I think I might have to ditch Firefox for IE7 when it comes out. I’ve played with it on a Vista beta machine we got setup and I like it a lot! Keep up the good work, if you guys can get up to par with web standards (which it seems you’re doing a great job of doing), you will have earned my respect again. I can’t wait for IE7 to go final!

  53. Anonymous says:

    @Adam Plocher:

    I bet Opera will still be the fastest and most reliable browser as it is now. Unless IE 7 is more secure than, more reliable than, and outperforms Opera, there isn’t a very big chance I will switch to it. However, I’ll give it a run and see as to whether it offers something extraordinary.

  54. Anonymous says:

    Yeah, that’s really nice and most definitely a step into the right direction but… it’s no use to us web developers right now. We still have to check for the ActiveX object as well because not everybody is going to switch to IE7 just like that.

    One good idea (or in fact some good ideas) in IE7 won’t make up for stupid implementations in the past…

    charon

  55. Anonymous says:

    When congrats are in order…

    Congratulations!!!

    Now if only "HTMLElement"s where native JS Objects, you’d make me a really happy JS-programmer.

  56. Anonymous says:

    <blockquote>

    NocturnDragon,

    If you do that, you put your system in an unsupported state. If you read back on the blog, you will see that when the last security patch came out, some people reported a problem here with it. It turned out, in the end, that they had installed IE6 and IE7 in a side by side scenario and put their system into a state that created problems for them. It is not recommended.

    </blockquote>

    That’s true, so far I only found a problem with conditional comments, but some other problems could arise. (do you have a link of that discussion?)

    I just think MS should give us some easy way to do it in a standard way.

    And I don’t see having a computer for every version of IE, or buying virtual PC or re-booting from a system to the other as a solution.

    Afterall it’s not really our fault if when creating a website following the standars we need to check it on IE6.0 and 5.5 after every little step, to avoid messing it up too much so that we cannot get what is wrong where!

    It’s already annoying enough, creating a page in 30 minutes, and then spending 3 hours trying to understand what particular IE6.0 bug is messing up that design!

    With Opera, Safari (OR Khtml) we need to check the design once in a while to see if it’s allright (and it usually is), so it might be possible to dual boot.

    Do you think we’ll have a standard way to do it?

  57. Anonymous says:

    I’ve been watching this blog with anticipation.. it’s great to see the improvements you’ve been making to Internet Explorer. Though I probably won’t switch from Firefox when IE7 is released (I love the customization and extensions that Firefox provides), it will be great to not rip my hair out when I’m developing pages to get them to work in IE anymore :)

  58. Anonymous says:

    Sven Groot mentioned it before. What’s about Web Services. Can we hope for a SOAPCall object like available for the geckos? I do not like the behaviours (and so the webservices.htc). XMLHTTPRequest is nice, but the communication not standardizied. You have to write your xml, download it, parse it and so on. Define a function and call it (over a network or not) is much easier than parse a document.

    It would be a nice function to see in IE7 without a lot of hassle implemeting it (as there are no dependencies). And please keep up to the mozilla’s interpretation of it. Talk with them.

  59. ieblog says:

    NocturnDragon,

    No, you won’t have a standard way to do it. IE has a series of system components as a part of it. Having multiple versions of these on a system can lead to unforseen (and not terribly good) side effects. We don’t support this scenario and will not be supporting this scenario. IE7 is a full upgrade on IE6 and replaces it for this reason.

    This has been said before for the record and is not going to change.

    – Al Billings [MSFT]

  60. Anonymous says:

    Maurits: If statments cause no scoping issues. Functions would, but this isn’t in a function, and if it was…I would assume the function would RETURN xmlHttp rather than simply modify a global var. In this way, this same function could be used to create multiple objects, AND could easily be implemented into existing code. Something like this:

    function getXHR(){

    if (window.XMLHttpRequest) {

    // If IE7, Mozilla, Safari, etc: Use native object

    var xmlHttp = new XMLHttpRequest()

    } else if (window.ActiveXObject) {

    // …otherwise, use the ActiveX control for IE5.x and IE6

    var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    }

    return xmlHttp;

    }

  61. Anonymous says:

    Very often I can’t even demo our "IntuiCat" AJAX Search Engine / Catalog in large companies because they only use IE with ActiveX disabled.

    http://www.abaqueinside.com/IntuiCatAjaxDemoVerif.asp

    I hope IE7 will be available as update on Win2k.

    Th N

  62. Anonymous says:

    I suggest this for backwards compatibility with IE 5/Win & 6:

    http://design-noir.de/webdev/JS/XMLHttpRequest-IE/

  63. Anonymous says:

    what to say that hasn’t already been said?

    great news indeed! :) i’m assuming that this will be in IE7 Beta 2 for us to test and play with, then?

  64. Anonymous says:

    Not very native if you ask me. Try this for example:

    var xhr = new XLMHttpRequest;

    xhr.foo = "bar";

    This chokes IE7 because it does not return a native object. Native objects supports expandoz. Native objects extends Object. Native objects expose methods as function objects. Native objects have prototypes and the list goes on.

    I really hope you will expose the DOM nodes returned from xhr.responseXML as instance of Node and that modifying the Node class will affect both HTMLElement and Element objects…

    One can always dream.

  65. Anonymous says:

    @Thierry: "I hope IE7 will be available as update on Win2k."

    Unfortunately, no. IE7 will be available for Windows XPSP2, Win2k3 SP1, and Windows Vista.

    @Forgetfoo: "i’m assuming that this will be in IE7 Beta 2 for us to test and play with"

    Yes.

  66. Anonymous says:

    To echo Andrew Eberhard above – we really need native (non ActiveX) support for the XSLTProcessor object in addition to the XmlHttpRequest object in order to deliver AJAX appplications to the fully locked-down IE user base.

    Will this be delivered in IE7 as well?

    I have posted about this question in my weblog as well at http://www.freecollaboration.net/archives/2006/01/ie7_ajax_and_ac.html

  67. Anonymous says:

    good news for sites…. ajax is frequently used on in.

  68. Anonymous says:

    XMLHTTPRequest is great but nothing really new. A WebService client would be a giant extension!

    Most people use XMLHTTPRequest to do something very similar to web service calls. I see a chance for a common cross-browser definition for that. FF/Mozilla do already have an interface, but it’s not supporting all the basic standards.

  69. Anonymous says:

    I’m wondering if this new implementation will fix IE 6’s broken caching, described here: http://mir.aculo.us/articles/2005/08/28/internet-explorer-and-ajax-image-caching-woes

  70. Anonymous says:

    wel this progress has amazed me since the beginning,the only thing that i feel missing is the download manager,it will be the best of the best if you implement it.

    about CSS rendering,can you make it fully compatible with 2.1?

  71. Anonymous says:

    For a change i think this is good. Somethimes MS does see the trend and adapts even though IE is certainly not an early adopter of net technology. Hope IE7 comes soon. Am still without tabs…

  72. jobrssfeed says:

    I am using Firefox to replace IE6, because of the tabs browsing and speed…

  73. Anonymous says:

    @[MSFT] EricLaw, Al Billings

    Re: Erik Arvidsson’s note on native JS support.

    I was all gung ho for running AJAX natively, until I read this.

    Is this seriously the implementation? It better not be!, if it is, fix it or ditch it!

    Most AJAX implementations now use (pseudo-code):

    try(window.XMLHttpRequest)…

    try(new ActiveXObject("Msxml2.XMLHTTP"))…

    try(new ActiveXObject("Microsoft.XMLHTTP"))…

    and have extended the native XMLHttpRequest, to handle additional features, and prototyping.

    If you implement a "fake" native XMLHttpRequest Object, you will break several sites (both existing, and future), in IE7.

    Emanuel

  74. Anonymous says:

    "Keep up the good work, if you guys can get up to par with web standards…"

    Well, they won’t and MS has said IE7 won’t be much better with standards so …

    Will IE7 make any significant improvements in support of the DOM? The last it supported was those from 1998 and we are well past that while all the other browsers are up to date through at least 2004.

  75. Anonymous says:

    wow, someday you might have a browser almost as good as firefox…

  76. Eric says:

    Al Billings at MSFT:

    You seem displeased with the questions regarding side by side installs of different version of IE. I understand that you’d rather look at what has been accomplished (which I’d like to say is impressive) than talk about the past. However we (developers) are your customers as much as the average user. We WANT to support your products.

    I’m not someone who thinks IE is this awful browser. I don’t use it primarily and I don’t agree with every design decision but I do think you guys have attempted to make a quality platform as best you can with the resources available over the years. At the same time, understand we want to support your product and the users of it as best we can. If we can’t run the older browsers, we can’t do that. We are asking for a safe way to do this. We don’t want to have to run a Windows 98 or ME machine and leave ourselves open to the risk of data loss to ourselves and others that even your company acknowledges. What we need is a safe way to compartmentalize your older browsers to test our sites with them.

    You say that IE includes fundamental OS components that can’t be removed. I’m not disagreeing with you. However you do have the virtualizing technology to run multiple operating systems. Why couldn’t microsoft freely release a small program that simulates a very simple windows environmentthat can includes only versions of IE (5-6 would be most important) and nothing other than those programs?

    I know this wouldn’t be easy but at the same time I don’t think it’d be all that hard. If we can’t do this, we’re going to have to keep doing unsupported things that are going to lead to increased support calls (even if you don’t support it, people have to answer the phone/email and figure out that this is what is causing the problem) and headaches for everyone involved.

    We’re desperately asking you to help us serve our common customers better. This isn’t a "you against us" thing. This is how we can work together to make the internet a more usable place to work, play and live and to jointly help the joint customers of your company and us.

  77. ss says:

    In IE 7 Beta.. I am using this…

    if (window.XMLHttpRequest) {

    req = new XMLHttpRequest();

    } else if (window.ActiveXObject) {

    req = new ActiveXObject("Microsoft.XMLHTTP");

    }

    But req.readystate is coming as "undefined"….

    Any ideas??

  78. ss says:

    never mind…

    found that readyState is case sensitive…

  79. James Abendroth says:

    What about native support for other XML and XSLT objects such as XML Documents and XSLT Processors? Many AJAX applications make use of these and other native objects in Mozilla. Big deal if IE is only adding XMLHttpRequest! If that’s the only object you’re using in your application then it’s hardly AJAX. Only adding XMLHTTPRequest and none of these other objects still does nothing for us developers having to write crappy cross-platform code.

  80. Eric Coy says:

    This sounds sweet…can’t wait to try it out. Does the Security Dialog still render when making the xmlhttp request with the native support?

  81. s3lanc says:

    i am using ie7 beta2, when i run the following code

    if (window.XMLHttpRequest) {

    var req = new XMLHttpRequest();

    } else {

    // …

    }

    it gives an error saying it’s not ‘Not Implemented’

    wonder if anyone else is experiencing the same problem??

  82. I am so unbelievably disappointed with the IE6 handling javascript that I’m sure that IE7 (or any other new service pack) will not resolve the problems.

    Listen:

    - the operator javascript operator keyword ‘in’ is supported from IE4. But the installed scripting engine, even up to the latest version, will randomly per machine, generate an error without plossible reason.

    On millions of IE 5 or 6 users the following errors: if ("myprop" in myclass) { … };

    Please explain me why?

    - the ‘almost’ native msxml will not load. Problably this is caused by the new XP SP2 security settings. But tell me why, when loading and running ActiveX is allowed?

    - Why does an onmouseover on AREA crash IE when another event is triggerd?

    - Why does the loading of a document in a IFRAME stop if a user clicks an href link on the parent?

    Are these BUGS or incompentent implementers?

    I believe that new cavaeits will occur!

  83. agassi says:

    that’s impressive

  84. cc says:

    I got "Not implemented" script error when I used XMLHttpRequest in IE7 Beta 2. I guess they did not implement it in B2 yet.

  85. Todd says:

    Can anyone show me an example of DOM changes happening when XMLHttpRequest via the ActiveX Version is used in the same thread?

    I run code like this

    function getFromServer(pURL){

    message = document.getDocuemtById(‘Div_id’);

    message.innerHTML = "Show this first please!";

    req = new ActiveXObject("Microsoft.XMLHTTP");

    if(req)

     {

      req.onreadystatechange = returnFromRequest;

      req.open("GET",pURL,false);

      req.send("")    

     }

    }

    The div message does not appeqar until the returnFromRequest function has done its work …

    Anyone got an example of this or similar changes to DOM happening in a thread that does the above BEFORE the request returns?

  86. After IE7 has been officially released, we can construct XMLHttpRequest natively,i.e. var xmlHttp = new XMLHttpRequest()for

    all the major web browsers including Mozilla, IE and Safari. Isn’t that

    a good news for those who build AJAX web application

  87. Oneda says:

    O W3C, &#243;rg&#227;o respons&#225;vel pelo estabelecimento de padr&#245;es da Internet, publicou um draft com a especifica&#231;&#227;o…

  88. This weekend I had a deep look on the native XMLHttpRequest support with the new Internet Explorer version

  89. IEBlog says:

    We’ve been talking for a long time about making sure IE7 is as secure as possible but still compatible

  90. 这一年多来Vista有不少版本都在我机器上借宿过,从早期巨慢无比到beta1时我的显卡也能跑Aero了.现在RTMBusiness版也占据了我的硬盘的一部分。但是无论什么时候,总是感觉在Vista上…