최근 내 주변 친구가 프로젝트를 진행하고 있었는데, js를 사용하여 webService를 호출하는 데 필요한 모듈 요구 사항 중 하나가 나에게 솔루션을 생각하는 데 도움을 달라고 요청했습니다. 약 1시간 정도의 테스트 끝에 작동이 되었습니다. 이 내용을 적어놓고 나니 너무 간단하다는 걸 알았습니다. 처음에는 복잡하다고 생각했어요. 테스트 중에 작성한 코드를 공유해 드리며, 모두에게 도움이 되기를 바랍니다.
WebService 파일 콘텐츠
암호
System 사용;System.Web 사용;System.Collections 사용;System.Collections.Generic 사용;System.Web.Services 사용;System.Web.Services.Protocols 사용;System.Web.UI.MobileControls 사용;/// <summary >/// JsWebService 요약 설명/// </summary>[WebService(Namespace = " http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.Web.Script.Services .ScriptService] public class JsWebService : System.Web.Services.WebService{ public JsWebService() { //설계된 구성 요소를 사용하는 경우 다음 줄의 주석 처리를 제거하십시오. //InitializeComponent() } [WebMethod] public string GetString() { return " GetString"; } [WebMethod] 공개 문자열 GetString(문자열 이름) { return string.Format("{0}환영합니다!", 이름); } [WebMethod] 공개 List<string> GetList() { List< string> listStr = new List<string>(); for (int i = 0; i < 10; i++) { listStr.Add("test" + i) } return listStr } [WebMethod] public List<JsWebServiceObject> GetObjectList(); List<JsWebServiceObject> objs = new List<JsWebServiceObject>(); for (int i = 0; i < 10; i++) { JsWebServiceObject obj = new JsWebServiceObject("name" + i, i + 20); ); } 객체를 반환합니다 }}
WebService를 호출하는 aspx 페이지 코드
암호
<%@ 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 runat="서버"> < title>Js 호출 WebService</title> <script type="text/javascript"> function GetString() { JsWebService.GetString(GetStringCallBack); //WebService에서 메서드 호출 및 콜백 함수 설정} function GetStringCallBack(result) { Alert(result); } function GetStringParam(name) { JsWebService.GetString(name,GetStringParamCallBack); //WebService에서 메소드를 호출하고 콜백 함수를 설정합니다. 이 메소드에 매개변수가 있는 경우 콜백 함수 앞에 이 매개변수를 추가합니다. } function GetStringParamCallBack(result) { 경고(결과); } function GetList() { JsWebService.GetList(GetListCallBack) } function GetListCallBack(result) { if(result.length!=0) { for(var i=0;i <result.length;i++) { document.getElementById("contentDivGetList").innerHTML += result[i] + "<br/>" } } } function GetObjectList() { JsWebService.GetObjectList(GetObjectListCallBack) } function GetObjectListCallBack (결과) { if(result.length!=0) { for(var i=0;i<result.length;i++) { document.getElementById("contentDivGetObjectList").innerHTML += "이름:" + result[i ].이름 + "나이:" + 결과[i].Age + "<br/>" } } } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="smJs" runat="server" > <서비스> <asp:ServiceReference Path="WebService/JsWebService.asmx" /> </Services> </asp:ScriptManager> <div> <input type= "button" name="btnJsWebService" value="GetString" onclick="GetString()" /> <input type="button" name="butJsWebService" value="GetList" onclick="GetList()" /> <input type="button" name="butJsWebService" value="GetObjectList" onclick="GetObjectList()" /> <input type="button" name="butJsWebService" value="GetStringParam" onclick="GetStringParam('js가 WebService를 호출함) ')" /> <div id="contentDivGetList"></div> <div id="contentDivGetObjectList"></div> </div> </form></body></html