NET-使用Js调用WebService

注:JsWebServiceObject 此类是我做测试示例时为了测试js是否能调用webService中的复合类型而单独新建的一个类

  此类中只有名字与年龄的属性。

最近身边的一个朋友做项目,其中有一个模块需求要求使用js去调用webService,让我帮着想想招,因为以前却实没有这么做过。经过大约一个小时的测试,成功了。发现这个东东写出来之后是这么简单。当初是我想复杂了。分享一下测试时写的代码,希望对大家有所帮助。

WebService文件内容

using System;
using System.Web;
using System.Collections;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;
using 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]
public string GetString(string name)
{
return string.Format("{0}欢迎您的到来!", name);
}

[WebMethod]
public 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);
objs.Add(obj);
}
return objs;
}

}

调用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="server">
<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)
{
alert(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(result)
{
if(result.length!=0)
{
for(var i=0;i<result.length;i++)
{
document.getElementById("contentDivGetObjectList").innerHTML += "姓名:" + result[i].Name + " 年龄:" + result[i].Age + "<br/>";
}
}
}

</script>
</head>
<body>
<form id="form1" runat="server">

<asp:ScriptManager ID="smJs" runat="server" >
<Services>
<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>

示例下载地址:/Files/homezzm/Js调用WebService.rar

NET-使用Js调用WebService

时间: 2024-11-05 12:20:56

NET-使用Js调用WebService的相关文章

Js 调用 WebService 实例

Html页面代码: <!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="server"> <title>Js调用WebSer

asp.net 练习 js 调用webservice

[csharp] view plaincopyprint? using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; /// <summary> ///JsWebServiceTest 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.o

使用JS调用WebService接口

<script> $(document).ready(function () { var username = "admin"; var password = "123456"; /*==JS使用HTTP-POST方式调用WebService接口(仅IE调试)==*/ //var host_url = "http://localhost/Interface/Login.asmx/Login?UserName=" + username

ASP.NET JS调用WebService——简单例子

一.创建好WebService 二.编辑页面与js 三. 运行页面并点击按钮,结果如下 简单调用吧!

Js 调用 webservice

<html> <head> <title>通过ajax调用WebServive服务</title> </head> <script type="text/javascript"> function ReturnAjaxXmlHttp(){ vat xmlhttp; try{ //创建XMLHttpRequest对象 //创建不是ie浏览器的对象 xmlhttp = new XMLHttpRequest(); } c

JS调用webservice的两种方式

协议肯定是使用http协议,因为soap协议本身也是基于http协议.期中第二种方式:只有webservice3.5以后版本才可以成功 第一种方式:构造soap格式的body,注意加粗的黄色标识,比如: createXMLHttpRequest();     var data;     data = '<?xml version="1.0" encoding="utf-8"?>';     data = data + '<soap:Envelope

JS调用webservice

function RequestWebService() { var c = document.getElementById('UserName').value; var pwd = document.getElementById('UserPwd').value; var data; data = '<?xml version="1.0" encoding="utf-8"?>'; data = data + '<soap12:Envelope x

C#调用JS的WebService的方法返回null

连上了别人的VPN后,使用WebService测试软件测试了一下,结果正常,但是当我在vs里面添加WebService服务,调用的时候就出现了问题,问题如下图: 后来问了一下服务端那边的同事,他们说服务是用JS写的,使用JS和JAVA调用没有问题. 然后我用JS调用试了一下,一点问题都没有,返回的结果和测试软件是一样的,都是xml字符串. 经过很多次百度之后,通过JS调用webservice大概知道了C#调用webservice返回null的原因:因为C#调用webservice的方法返回了一个

js如何调用webservice

写了个webservice,功能是更新List中和item值想在javascript中调用,百度了下,感觉好复杂.请问有完整的方法吗? 本来是想在js中直接更新的(用ecma,但是没有提权操作),本人需要这段代码,任务人都可以执行. 求助. 确实很复杂,需要拼XML格式的Soap包,参考我用JS调用taxonomyclientservice.asmx的例子: 但是每个web service的Soap格式是不一样的. 有段js代码是更新List字段的值 这段代码,在按下按钮后调用,但是没有list