I am trying to call an asmx service using jQuery Ajax.
POST /YderWS.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://scandihealth.com/iwebservices/HentKommuner"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthHeader xmlns="http://scandihealth.com/iwebservices/">
<PartnerID>string</PartnerID>
<SubPartnerID>string</SubPartnerID>
<SubPartnerType>string</SubPartnerType>
</AuthHeader>
</soap:Header>
<soap:Body>
<HentKommuner xmlns="http://scandihealth.com/iwebservices/" />
</soap:Body>
</soap:Envelope>
Above is the SOAP 1.1 request I need to send to the service. I am using the below call to set the custom soap header. But my request fails. Can anybody debug the below code for me and let me know what I need to do?
var authHeader = "<PartnerID>SCTEST001</PartnerID> <SubPartnerID>001</SubPartnerID> <SubPartnerType>S</SubPartnerType>";
//Call the page method
$.ajax({
type: "GET",
url: servicename + "/" + functionName,
beforeSend: function (xhr) {
xhr.setRequestHeader('AuthHeader', authHeader);
},
success: successFn,
error: errorFn
});
EDIT *Please let me know if additional information is required to answer this question.*
jQuery.ajax()
issues generic HTTP requests for any type of "web service", not just .NET web services. You'll want to add a SOAPAction request header and pass the entire SOAP envelope as POST data:If you're using jQuery < 1.5, you'll need to use
beforeSend
to set the SOAPAction request header.You can find the documentation for
jQuery.ajax()
at http://api.jquery.com/jQuery.ajax/.