javascript调用webservice用法

MyService.asmx

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Xml;

/// <summary>

///MyService 的摘要说明

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。

[System.Web.Script.Services.ScriptService]

public class MyService : System.Web.Services.WebService {

    public MyService () {

        //如果使用设计的组件,请取消注释以下行

        //InitializeComponent();

    }

    [WebMethod]

    public string HelloWorld()

    {

        return "Hello World";

    }

    [WebMethod]

    public XmlNode xml() {

        XmlDocument doc = new XmlDocument();

        doc.LoadXml("<hi>Hello World</hi>");

        return doc.FirstChild;

    }

    [WebMethod]

    public string add(int a, int b)

    {

        return (a + b)+"";

    }

}

aspx页面

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script language="javascript" type="text/javascript">

// <!CDATA[

        function Button1_onclick() {

            var data;

            data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"

                +"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"

                +  "<soap12:Body>"

                +    "<HelloWorldResponse xmlns=\"http://tempuri.org/\">"

                +      "<HelloWorldResult>string</HelloWorldResult>"

                +    "</HelloWorldResponse>"

                +  "</soap12:Body>"

                +"</soap12:Envelope>";

            var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

            var URL = "MyService.asmx";

            xmlhttp.Open("POST", URL, false);

            xmlhttp.SetRequestHeader("Content-Type", "text/xml; charset=gb2312");

            xmlhttp.SetRequestHeader("SOAPAction", "http://tempuri.org/HelloWorld");

            xmlhttp.setRequestHeader("Content-Length", data.length);

            xmlhttp.Send(data);

            var xml = xmlhttp.responseText;

            var doc = new ActiveXObject("Microsoft.XMLDOM");

            doc.loadXML(xml);

            //alert(doc.selectSingleNode("//HelloWorldResult").text);

            //alert(doc.xml);

            alert(doc.selectSingleNode("//HelloWorldResponse").childNodes[0].nodeName);

        }

        function add() {

            var a = 10;

            var b = 15;

            var data;

            data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"

                + "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"

                + "<soap12:Body>"

                + "<add xmlns=\"http://tempuri.org/\">"

                + "<a>"+a+"</a>"

                + "<b>"+b+"</b>"

                + "</add>"

                + "</soap12:Body>"

                + "</soap12:Envelope>";

            var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

            var URL = "MyService.asmx";

            xmlhttp.Open("POST", URL, false);

            xmlhttp.SetRequestHeader("Content-Type", "text/xml; charset=gb2312");

            xmlhttp.SetRequestHeader("SOAPAction", "http://tempuri.org/add");

            xmlhttp.setRequestHeader("Content-Length", data.length);

            xmlhttp.Send(data);

            var xml = xmlhttp.responseText;alert(xml);

            var doc = new ActiveXObject("Microsoft.XMLDOM");

            doc.loadXML(xml);

        }

        function getxml() {

            var a = 10;

            var b = 15;

            var data;

            data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"

                + "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"

                + "<soap12:Body>"

                + "<add xmlns=\"http://tempuri.org/\">"

                + "</soap12:Body>"

                + "</soap12:Envelope>";

            var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

            var URL = "MyService.asmx";

            xmlhttp.Open("POST", URL, false);

            xmlhttp.SetRequestHeader("Content-Type", "text/xml; charset=gb2312");

            xmlhttp.SetRequestHeader("SOAPAction", "http://tempuri.org/xml");

            xmlhttp.setRequestHeader("Content-Length", data.length);

            xmlhttp.Send(data);

            var xml = xmlhttp.responseText; alert(xml);

            var doc = new ActiveXObject("Microsoft.XMLDOM");

            doc.loadXML(xml);

        }

// ]]>

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <input id="Button1" type="button" value="button" onclick="getxml()" />

    </div>

    </form>

</body>

</html>

posted @ 2011-05-20 10:42  还是你最好  阅读(4552)  评论(0编辑  收藏  举报