方法一:js中直接调用
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>测试javascript调用WebService</title> <script type="text/javascript" language=javascript> function test() { //实际上HelloWorld函数中只有一个参数,这里的第2个"test2"是用来接收返回值的 //如果没有返回值则不需要 WebService.HelloWorld("Qinggeer",test2); } function test2(str) { alert(str); } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="WebService.asmx" /> </Services> </asp:ScriptManager> <input id="Button1" type="button" value="button" οnclick="javascript:test();" /> </form></body></html>WebService代码:using System;using System.Web;using System.Collections;using System.Web.Services;using System.Web.Services.Protocols;/// <summary>/// WebService 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.Web.Script.Services.ScriptService]public class WebService : System.Web.Services.WebService { public WebService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld(string str) { return str; } [WebMethod] public string SayHello(string Name) { return "Hello " + Name; }}
方法二:ajax调用
using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; [webservice(namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () { //uncomment the following line if using designed components //InitializeComponent(); } [webmethod] public string SayHelloTo(string Name) { return "Hello "+Name; } }
function RequestByGet(data){ var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //Webservice location. var URL="http://localhost:1323/WebSite6/Service.asmx/SayHelloTo?Name=Zach"; xmlhttp.Open("GET",URL, false); xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8"); xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/SayHelloTo"); xmlhttp.Send(data); var result = xmlhttp.status; //OK if(result==200) { document.write(xmlhttp.responseText); } xmlhttp = null; }
ajax调用webservice,仍然在xmlHttp.Open()方法中拼凑url来访问