Hi Bjorn,
Yes, I had trouble getting IE to work cross-domain in 7.10. I'm
running my site on
www.domain.com, while orbited is running on
stream.domain.com. I did some patches to get it to work.
Essentially, for IE7 and below, I changed the JS to use long polling,
instead of iframe streaming. I could have done this for IE8 also, but
instead decided to go for XDomainRequest streaming (i prefer streaming
over long-polling, and IE8's cross-domain version of XmlHttpRequest,
XDomainRequest, supports streaming like Xhr does in Firefox).
I also had to throw in a bunch of document.domain = '
domain.com' all
over the place (see below), and the Html file that is going to be
running the streaming.
Here are my patches:
JavaScript:
http://66.81.238.4/common/javascript/streaming/orbited/orbited.js (you
can do a diff against the original orbited.js to see what has changed)
Server-side stuff (I think these are reverse diffs):
[root@hurricane static]# diff xsdClose.html xsdClose.html.bak
2d1
< document.domain = '
domain.com';
-------------------------------------------------------------------
-------------------------------------------------------------------
[root@hurricane static]# diff xsdrBridge.html xsdrBridge.html.bak
8c8
< document.domain = '
domain.com';
---
>
-------------------------------------------------------------------
-------------------------------------------------------------------
#Write 2kb of whitespace instead of 256 bytes, and set Access-Control-
Allow-Origin header to allow cross-domain requests (of course, make
sure this meets your security policy before setting this value to '*')
[root@hurricane transports]# diff xhrstream.py xhrstream.py.bak
16,18c16,17
< self.request.setHeader('Access-Control-Allow-Origin', '*' )
< # Safari/Tiger may need 256 bytes, IE needs 2KB
< self.request.write(' ' * 2048)
---
> # Safari/Tiger may need 256 bytes
> self.request.write(' ' * 256)
50c49
< self.request.write('x')
---
> self.request.write('x')
\ No newline at end of file