W3C home > Mailing lists > Public > public-webapi@w3.org > November 2006

Re: The url parameter of the XMLHttpRequest.open() method

From: Anne van Kesteren <annevk@opera.com>
Date: Fri, 10 Nov 2006 21:50:23 +0100
To: "Web APIs WG (public)" <public-webapi@w3.org>
Message-ID: <op.titit9hn64w2qv@id-c0020>

On Fri, 10 Nov 2006 20:37:35 +0100, Anne van Kesteren <annevk@opera.com>  
wrote:
>>>> If you want to be compatible with IE for this, what you should check  
>>>> is what happens if the base URI is _changed_ while the XMLHttpRequest  
>>>> object exists, e.g. by changing the attribute directly or by mutating  
>>>> the <base> elements in the document (if that works).
>>
>> I just tested this. Internet Explorer indeed takes note of of changes  
>> to <base>. (Either changing .href or adding a <base> element.) Ouch!
>
> I forgot to mention the testcases in my previous e-mail:
>
>    http://tc.labs.opera.com/apis/XMLHttpRequest/open/018.htm
>    http://tc.labs.opera.com/apis/XMLHttpRequest/open/019.htm
>    http://tc.labs.opera.com/apis/XMLHttpRequest/open/020.htm
>
> Note that the pass conditions of none of the above should be considered  
> stable. The testcases will change over time to reflect the latest  
> version of the Working Draft. They are just to aid in decisions on  
> moving forward at the moment.

I added the following testcases based on suggestions from Björn (thanks!):

   http://tc.labs.opera.com/apis/XMLHttpRequest/open/021.htm
   http://tc.labs.opera.com/apis/XMLHttpRequest/open/022.htm
   http://tc.labs.opera.com/apis/XMLHttpRequest/open/023.htm

I also modified some of the earlier mentioned testcases (flush your cache)  
to reflect what Internet Explorer implements. The moment you invoke the  
open() method Internet Explorer resolves the URI and stores it as part of  
the object. Changing it after open() has no effect on the fetched URI.

I suppose the draft should say that you store a reference to the baseURI  
attribute instead of storing the value. The only problem with that is what  
when the iframe is removed you can't directly remove the window object.  
Other testcases have demonstrated that in such cases you still use the  
baseURI from that Window if you used the XMLHttpRequest attribute from  
that Window as constructor:

   http://tc.labs.opera.com/apis/XMLHttpRequest/open/015.htm


(I hope the above is relatively clear. Feel free to ask questions.)


-- 
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>
Received on Friday, 10 November 2006 20:50:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:18:56 GMT