次のコードを使用して、HTML および JavaScript で Web サービス (SOAP) を使用する例をテストしようとしています。
<script type="text/javascript">
function soap() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://www.webservicex.net/CurrencyConvertor.asmx', true);
var sr =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">'+
'<soapenv:Header/>'+
'<soapenv:Body>'+
'<web:ConversionRate>'+
'<web:FromCurrency>EUR</web:FromCurrency>'+
'<web:ToCurrency>TND</web:ToCurrency>'+
'</web:ConversionRate>'+
'</soapenv:Body>'+
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert('done use firebug to see response');
}
}
if (xmlhttp.readyState == 0) {
alert('open() has not been called yet');
}
if (xmlhttp.readyState == 1) {
alert('send() has not been called yet');
}
if (xmlhttp.readyState == 2) {
alert('send() has been called, ...');
}
if (xmlhttp.readyState == 3) {
alert('Interactive - Downloading');
}
else
alert('Consuming Error');
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(sr);
// send request
// ...
}
</script>
問題は、何も表示されず (さまざまなアラートについて話します)、「onreadystatechange」関数が実行されないことです!
原因が分からなかった?前もって感謝します!