Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 282102 - Last Review: October 16, 2002 - Revision: 1.0
PRB: ServerXMLHTTP Object Adds Content-Type Header with XML Data
This article was previously published under Q282102
SYMPTOMS
When posting XML data to a Web server by passing a
DOMDocument object to the
send method of a
ServerXMLHTTP object, a content-type header of "text/xml" is automatically added. If you set the request header before sending XML data, the content-type header sent to the Web server is "Text/xml, text/xml" instead of "Text/xml," which may cause problems.
CAUSE
The following is an example of Microsoft JScript code that could cause the problem to occur:
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP");
var doc = new ActiveXObject("MSXML2.DOMDocument");
xmlhttp.open("POST", "http://localhost/acceptpost.asp", false);
//set the content-type as Text/xml
xmlhttp.setRequestHeader("Content-Type", "Text/xml");
doc.async=false;
doc.loadXML("<?xml version='1.0'?><Stock>myStock</Stock>");
xmlhttp.send(doc);
The
ServerXMLHTTP object first inspects the data and, when it finds that the data is XML, it adds the "text/xml" content-type header.
If the data is not XML, this content-type header is not added. The following code is an example of this scenario:
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP");
xmlhttp.open("POST", "http://localhost/acceptpost.asp", false);
xmlhttp.send("<?xml version='1.0'?><Stock>myStock</Stock>");
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
MORE INFORMATION
There are two possible workarounds to this problem:
- Do not call setRequestHeader for XML data because the ServerXMLHTTP sets the content-type header for you in this case.
- Pass the value of the xml property of the DOMDocument to the send method of ServerXMLHTTP instead of passing the DOMDocument itself. For example, modify the last line of the example in the first code snippet in the "Cause" section to be:
| kbbug kbprb kbmsxmlnosweep KB282102 |
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
Be the first to leave feedback, to help others about this knowledge base
article.
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please