The reasons for the MS IE only problem:

1) HTTP/1.1 Keep-Alive or Persistent Connection feature that both IIS
and MS IE supports. I am not sure if Gecko supports Keep-Alive.
2) CFLOCATION causes the CF Server to miscalculate and hence, misinform
MS IE, the value for the CONTENT-LENGTH header. It was too short.
3) MS IE uses the value in CONTENT-LENGTH to clear the appropriate
amount of the output buffer. Hence, it has left-overs. THEN, re-using
the same HTTP connection, MS IE retrieves the URL specified in the
LOCATION header, and append to the current output buffer. The output
buffer is fed to the HTML rendering engine, and voila, you get junk on
top.

This issue does not exists in MS IE if:
1) the CFLOCATION url does not point to the same server name (cnn.com
versus www.cnn.com)
2) the protocol of the CFLOCATION URL is not the same as the previous
call (HTTP versus HTTPS)

Which causes MS IE to terminate the current connection, and connects to
the appropriate server specified in the URL.

One quick way to duplicate this problem is to use CFHTMLHead in
conjunction with CFLOCATION. The string length passed to CFHTMLHead must
exceed the amount that would be specified by ColdFusion in the erroneous
CONTENT-LENGTH header.

As an aside, the CONTENT-LENGTH header's value is calculated based on
the HTML that would be presented to a browser when it does not
understand HTTP STATUS 302 (Object Moved) which is automatically
generated by the ColdFusion server when it executes CFLOCATION. The
length is variable because it depends on the length the CFLOCATION URL.
:)

This is a KNOWN problem. Not sure when it will ever get fix. ;)

-------------------------------
James Ang
Sr. Developer/Product Engineer
MedSeek, Inc.
[EMAIL PROTECTED]



-----Original Message-----
From: Stan Winchester [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 03, 2003 10:14 AM
To: CF-Talk
Subject: Message: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0...


Critz, 

Thank you for your suggestion. It looks like the problem was in fact 
<cflocation....>. The below solution worked perfectly: 

<cfheader name="location" value="../index.cfm"> 
<cfheader statuscode="302" statustext="Moved temporarily"> 
<cfabort> 

Upon further investigation I found that the custom tag <cf_location....>

also works because it does exactly the same thing as the above solution.
The 
obvious advantage for using the custom tag <cf_location....> is that I
can 
do saver global search & replaces very easily without fear of breaking
code. 

One last note: The <cflocation....> issue seems to be an issue only with

Windows client browsers and not on other platforms; I cannot reproduce
the 
header message on a Mac, thought I have not tried a Linux box yet. 

Thank you, 
Stan Winchester 
AfterShock Web Design, LLC 
[EMAIL PROTECTED] 
http://www.aftershockweb.com/ 
Tel. 503-244-3440 
Fax 503-244-3454 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to