Suppose this is our simple WCF service which takes the name as input and returns the resulting string with Hello appended to it.
namespace HelloWorldWCFService{
[ServiceContract]
public interface IService1{
[OperationContract]
string GetData(string name);}
}
namespace HelloWorldWCFService{
public class Service1 : IService1 {
public string GetData(string name) {
return “Hello “ + name;
}}}
It uses BasicHttpBinding.
Now this would be our JavaScript function which can consume the above WCF service.
function MyRequest() {var xmlhttp = new XMLHttpRequest();
xmlhttp.open(‘POST’, ‘http://localhost:64833/Service1.svc’, false);xmlhttp.setRequestHeader(‘SOAPAction’, ‘http://tempuri.org/IService1/GetData’);
xmlhttp.setRequestHeader(‘Content-Type’, ‘text/xml’);
var data = ”;
data += ‘<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>’;data += ‘ <s:Body>’;
data += ‘ <GetData xmlns=”http://tempuri.org/”>’;
data += ‘ <name>Nishant</name>’;
data += ‘ </GetData>’;
data += ‘ </s:Body>’;
data += ‘</s:Envelope>’;xmlhttp.send(data);
alert(“status = “ + xmlhttp.status);alert(“status text = “ + xmlhttp.statusText);
alert(xmlhttp.responseText);
}
Here for
xmlhttp.setRequestHeader(‘SOAPAction’, ‘http://tempuri.org/IService1/GetData’);
We can get the value for SOAPAction from the wsdl of the WCF service.
Open the http://localhost:64833/Service1.svc?wsdl
Search for soapAction there.
We would find soapAction value there.
<wsdl:operation name=”GetData“> <soap:operation
soapAction=”http://tempuri.org/IService1/GetData“ style=”document” />
<wsdl:input>
Hope it helps !