Javascrpit调用webservice接口(soap方式)

后台web服务:在.net里搭建web服务,发布webservice成功后,输入自己设定的网址即可出现如下页面。



webservice代码:

using System.Web;
using System.Web.Services;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using System.Net;
using System.IO;
using System.Net.WebSockets;

namespace webservice
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
     [System.Web.Script.Services.ScriptService]

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

   [WebMethod]   //在写函数前面要用[WebMethod]标记,表明是方法
        public string Name( )
    {

        return "myname is lily";   //无参数时的返回
    }
        [WebMethod]
        
        public int  add(int num1,int  num2)
        {
            return num1+num2;  //有参数时的返回
        }
        
    }


js代码:

(1)有参数时

<script type="text/javascript">
var URL = "http://localhost:8888";  //这是我自己在发布web服务时设定的地址
function  add() {
    //开始拼接,参考soap1.2请求,按规范拼接请求
    var data;
  
    data = '<?xml version="1.0" encoding="utf-8"?>';
    data = data + '<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">';
    data = data + '<soap12:Body>';
    data = data + '<add xmlns="http://tempuri.org/">';   //add为函数名,有参数时不能再此处写结束标签
    data=data+'<num1 >2</num1>';                          //num1、num2为参数名
    data=data+'<num2>3</num2>';
    data=data+'</add>';                                  //函数名的结束标签                             
    data = data + '</soap12:Body>';
    data = data + '</soap12:Envelope>';
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  //IE
    xmlhttp.Open("POST", URL, false);
    xmlhttp.SetRequestHeader("Content-Type", "application/soap+xml");  
    xmlhttp.Send(data);
    document.getElementById("data1").innerHTML=xmlhttp.responseText; 
}
</script>


(2)无参数时
<script type="text/javascript">
var URL = "http://localhost:8888";  //这是我自己在发布web服务时设定的地址

  function  getname() {
        //拼接
        var data;
        data = '<?xml version="1.0" encoding="utf-8"?>';
        data = data + '<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">';
        data = data + '<soap12:Body>';
        data = data + '<Name xmlns="http://tempuri.org/"/>';  //Name为函数名,注意无参数时此处有结束标签
        data = data + '</soap12:Body>';
        data = data + '</soap12:Envelope>';
        //创建异步对象
        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  //IE
        xmlhttp.Open("POST", URL, false);
        xmlhttp.SetRequestHeader("Content-Type", "application/soap+xml");
        xmlhttp.Send(data);
        alert(xmlhttp.responseText);
        document.getElementById("data2").innerHTML=xmlhttp.responseText;
    }

</script>


(3)html部分
<body>
<form id="form1" runat="server">
    <div>
        <button id="one" type="button"  οnclick="add()"> 求和 </button>
    </div>
    <div id="data1">
    </div>
    <div>
        <button id="two" type="button"  οnclick="getname()"> 姓名 </button>
    </div>
    <div id="data2">
    </div>
</form>

</body>
结果显示:


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值