Skip to main content

Call custom WCF Soap Service from Javascript

·125 words·1 min
Markus Konrad
Author
Markus Konrad
Blogger, Tekkie, Consultant, Developer

Call custom WCF Soap Service from Javascript
#

In my posts regarding oData, you can find JavaScript calls against WCF DataServices. Here i describe the call against a default WCF SOAP Endpoint.

WCF Service:

 public class Service1 : IService1 {

 public string GetData(int value) {
 return string.Format("You entered: {0}", value);
 }
 }

JavaScript:

function Retrieve(id) {
 jQuery.support.cors = true;
 var soapData = 's:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' + 's:Body>GetData xmlns="http://tempuri.org/">value>200/value>/GetData>/s:Body>/s:Envelope>';

 $.ajax({

 type: "POST",
 contentType: "text/xml; charset=utf-8",
 dataType: "xml",
 url: "http://localhost:58282/Service1.svc",
 data: soapData,
 beforeSend: function (xhr) {
 xhr.setRequestHeader("SOAPAction", "http://tempuri.org/IService1/GetData");
 },
 success: RetrieveCallbackSuccess,
 error: RetrieveCallbackError
 });
}
function RetrieveCallbackSuccess(response) {
 alert("Yey! :) --> " + response.text);
}

function RetrieveCallbackError(err) {
 alert("Onoz! :( --> " + err.statusText);
}

The line jQuery.support.cors = true is important for cross domain requests.

Cheers,

Markus