我有一个WSDL Web服务http://portal.strongtech.com/i/services/ivos?wsdl,我想使用AJAX向函数发送请求。我知道如何使用AJAX或JQuery发送请求,虽然我不知道如何为我想要的函数编写SOAP信封。
请帮助我从给定的服务URL为登录函数编写SOAP信封?真的很感激。
答案 0 :(得分:0)
检查call-soap-xm-web-services-with-jquery-ajax和jQuery Plugin SOAP
这是http://www.icloud.com/wiki/index.php/Getting_started_-_jquery_ajax_guide
的示例<html>
<head>
<script type="text/javascript" src="http://os.icloud.com/live/jqueryloader.js"></script>
<script type="text/javascript">
function printResult(doc, status, xhr) {
var p = document.getElementById("output");
if( status == "error" ) {
p.innerHTML = doc.responseText.replace(/</g, "<");
login("/", "/"); // reset username
} else {
p.innerHTML = xhr.responseText.replace(/</g, "<");
}
}
function createSoapEnvelope(contents) {
return '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' +
'SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
'<SOAP-ENV:Body>' + contents + '</SOAP-ENV:Body></SOAP-ENV:Envelope>';
}
function login(username, password, callback, errback) {
icloud.ajax({
type: "POST",
async: true,
cache: false,
contentType: "text/xml; charset=utf-8",
dataType: "xml",
processData: false,
url: "http://os.icloud.com/v1/",
username: username,
password: password,
data: createSoapEnvelope("<login/>"),
beforeSend: function(xhr) {
xhr.setRequestHeader("SOAPAction", "login");
},
success: callback,
error: errback
});
}
function buttonClicked() {
login(document.getElementById("username").value, document.getElementById("password").value, printResult, printResult);
}
initIcloudAPI();
</script>
</head>
<body>
<h2>Login example</h2>
username:<input type="text" name="username" id="username"/>
password:<input type="password" name="password" id="password"/>
<input type="submit" name="login" value="Login" onclick="buttonClicked()"/>
<p id="output"/>
</body>
</html>