我希望有人可以对此有所了解。我刚开始使用SOAP服务,并且很难理解为什么我在ajax调用中无法获得响应。
请求和响应在SOAPui中完美运行,而不是在浏览器中的ajax中。我也不确定如何检查响应是否有效。
此外,值得指出的是,如果我改变
contentType:“application / soap + xml; charset = utf-8”, 至 contentType:“text / xml”,
它总是会出错。
SOAP RESPONSE
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<vcr:ValidResponse xmlns:vcr="http://url/central-register">
<vcr:valid>true</vcr:valid>
</vcr:ValidResponse>
</soapenv:Body>
</soapenv:Envelope>
AJAX
<script type="text/javascript">
var soapMessage = '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:cen="http://url/central-register">'+
'<soap:Header/>'+
'<soap:Body>'+
'<cen:ValidRequest>'+
'<cen:personIdentity>'+
'<cen:Id>32342</cen:Id>'+
'<cen:surname>SMITH</cen:surname>'+
'<cen:dateOfBirth>1943-02-14</cen:dateOfBirth>'+
'</cen:personIdentity>'+
'<cen:Credentials>'+
'<cen:Username>CGWSV02</cen:Username>'+
'<cen:Password>February2014</cen:Password>'+
'</cen:Credentials>'+
'</cen:ValidRequest>'+
'</soap:Body>'+
'</soap:Envelope>';
function CallService()
{
$.ajax({
url: "https://www.url-to-soap-service/",
type: "POST",
dataType: "xml",
contentType: "application/soap+xml; charset=utf-8",
data: soapMessage,
success: OnSuccess,
error: OnError
});
return false;
}
function OnSuccess(data, status)
{
alert(data);
}
function OnError(request, status, error)
{
alert('error');
}
$(document).ready(function() {
jQuery.support.cors = true;
});
</script>
<form method="post" action="">
<input type="submit" value="SUBMIT" onclick="CallService(); return false;" />
</form>
答案 0 :(得分:0)
您应该在soap服务中启用ajax
在肥皂中取消注释[System.Web.Script.Services.ScriptService]
。