我有一个XML Web服务,其单个方法SendXMLRequest(string xml)接收XML数据。如果我使用来自Web表单的POST操作或者将其集成到其他项目中的C#代码库中,那么webservice工作正常。
我现在尝试使用jQuery.ajax()(v1.91)调用SendXMLRequest,但我发现如果传入的xml数据包含嵌套的XML标记,则返回状态代码为400&# 39;错误请求'。删除嵌套使调用工作。在生产中,传入的XML数据将始终包含嵌套标记,因此我非常感谢有关如何解决此问题的任何提示。
以下是我用于ajax调用的js代码。
var mySOAP = '<?xml version="1.0" encoding="utf-8"?> \
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> \
<soap12:Body> \
<SendXMLRequest xmlns="http://tempuri.org/"> \
<xml>
<requestor>
<id>97efbb6d-6aaa-4729-a47f-00658b5ce0c7</id> \
<username>mattma</username> \
</requestor> \
</xml> \
</SendXMLRequest> \
</soap12:Body></soap12:Envelope>';
$.ajax({
type: "POST",
url: "http://localhost/webservicerequest.asmx",
contentType: "application/soap+xml; charset=utf-8",
dataType: "xml",
cache: false,
processData: false,
data: mySOAP,
success: SuccessOccur,
error: ErrorOccur
});
};
提前感谢您的帮助。 马特