ajax如何调用带有SoapHeader的 web service?能否告知如何做?Ajax访问Xml Web Service的我会做,但是访问 带有SoapHeader的 web service还不明白怎么做?

解决方案 »

  1.   

    用什么调用的,纯javascript,还是MS ajax library,还是JQuery?
      

  2.   

    这个是jquery的例子:[WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class WebService4JQuery : System.Web.Services.WebService
        {
            
            public TestHeader THeader;        [WebMethod]
            [SoapHeader("THeader")]
            public string TestSoapHeader()
            {            return "THeader Value: " + THeader.HeaderData;
            }
        }    public class TestHeader : SoapHeader
        {
            public string HeaderData { get; set; }
        }<script type="text/javascript">        function CallWebMethodWithHeader() {            var soapXML = 
                "<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>" +
                    "<TestHeader xmlns='http://tempuri.org/'>" +
                        "<HeaderData>111111111111</HeaderData>" +
                    "</TestHeader>" +
                "</soap:Header>" +
                "<soap:Body>" +
                    "<TestSoapHeader xmlns='http://tempuri.org/' />" +
                "</soap:Body>" +
                "</soap:Envelope>";
            
                $.ajax({
                    url: "WebService4JQuery.asmx?op=TestSoapHeader",
                    type: "POST",
                    dataType: "xml",
                    contentType:"text/xml; charset=utf-8",
                    data: soapXML,
                    beforeSend: function (xhr) {
                        xhr.setRequestHeader('SOAPAction', 'http://tempuri.org/TestSoapHeader');                },                success: function (data) {
                        alert("webmethod call success");
                    },
                    error: function (err) {
                        alert("webmethod call failed");
                    }            });
     
            }
        </script>
    代码来自:
    how to add soap header from jquery ajax call?
    http://forums.asp.net/t/1794228.aspx/