PRB: ServerXMLHTTP Object Adds Content-Type Header with XML Data (282102)



The information in this article applies to:

  • Microsoft XML 3.0

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:
    xmlhttp.send(doc.xml);
    						

Modification Type:MajorLast Reviewed:10/16/2002
Keywords:kbBug kbDSupport kbMSXMLnosweep kbprb KB282102