知识大全 在JavaScript中调用ASP.NET WebService的简单方法

Posted

篇首语:研卷知古今;藏书教子孙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在JavaScript中调用ASP.NET WebService的简单方法相关的知识,希望对你有一定的参考价值。

在JavaScript中调用ASP.NET WebService的简单方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  客户端 JavaScript 调用 ASP NET WebService 的方法除了采用 WebServer htc 和 构造 SOAPAction 的方法外 下面介绍一个采用 Ajax 调用的简单方法 并且可以传递参数 其实 ASP NET WebService 就是一个网站 所以 Request 对象是可用的 这样 传递参数就很容易了 下面是一个WebService asmx的代码

  ASMX 代码

  <%@ WebService Language= C# CodeBehind= WebService asmx cs Class= WebService %>

  C# 代码

  using System;

  using System Collections Generic;

  using System Linq;

  using System Web;

  using System Web Services;

  using System Data;

  /// <summary>

  /// Summary description for WebService

  /// </summary>

  [WebService(Namespace = )]

  [WebServiceBinding(ConformsTo = WsiProfiles BasicProfile _ )]

  [System ComponentModel ToolboxItem(false)]

  // To allow this Web Service to be called from script using ASP NET AJAX unment the following line

  // [System Web Script Services ScriptService]

  public class WebService : System Web Services WebService

  

  [WebMethod]

  // 字符串返回测试

  public string GetServerTime()

  

  return 当前服务器时间 + DateTime Now ToString();

  

  [WebMethod]

  // long 类型返回测试

  public long GetServerTimeTicks()

  

  return DateTime Now Ticks;

  

  [WebMethod]

  // Datatable返回测试

  public DataTable GetTestDataTable()

  

  DataTable dt = new DataTable( TestTable );

  DataRow dr;

  dt Columns Add(new DataColumn( id typeof(Int )));

  dt Columns Add(new DataColumn( text typeof(string)));

  for (int i = ; i < ; i++)

  

  dr = dt NewRow();

  dr[ ] = i;

  dr[ ] = 列表项目 + i ToString();

  dt Rows Add(dr);

  

  return dt;

  

  [WebMethod]

  // List 类型测试

  public List<User> GetTestUser()

  

  //传递参数传测试

  string param = this Context Request QueryString[ param ];

  if (param == null) param= this Context Request Form[ param ];

  List<User> u_list = new List<User>();

  for (int i = ; i < ; i++)

  

  User u = new User();

  u Name = LoginName + i ToString() + param = + param;

  u Title = 孟宪会 + i ToString();

  u_list Add(u);

  

  return u_list;

  

  //定义一个对象 User

  public class User

  

  public String Name get; set;

  public String Title get; set;

  

  

  客户端调用的代码

  HTML 代码

  <!DOCTYPE PUBLIC //W C//DTD XHTML Transitional//EN transitional dtd >

  < xmlns= >

  <head runat= server >

  <title>JavaScript 调用 ASP NET Web 服务测试</title>

  <script type= text/javascript >

  var xmlHttp = null;

  function createXMLHttpRequest()

  try

  if (window XMLHttpRequest)

  xmlHttp = new XMLHttpRequest();

  else if (window ActiveXObject)

  xmlHttp = new ActiveXObject( Microsoft XMLHTTP );

  

  catch (ex)

  

  function AsynRequest()

  createXMLHttpRequest();

  if (xmlHttp == null)

  alert( 不能创建 XmlHttpRequest 对象 );

  return;

  

  xmlHttp open( GET WebService asmx/GetTestUser?param=net_lover true);

  xmlHttp setRequestHeader( Connection close );

  xmlHttp onreadystatechange = function ()

  if (xmlHttp readyState == )

  if (xmlHttp status == )

  var userList = xmlHttp responseXML getElementsByTagName( User );

  for (i = ; i < userList length; i++)

  document getElementById( get ) innerHTML += userList[i] getElementsByTagName( Name )[ ] firstChild nodeValue + ;

  document getElementById( get ) innerHTML += userList[i] getElementsByTagName( Title )[ ] firstChild nodeValue + <br/> ;

  

  

  

  ;

  xmlHttp send();

  

  function AsynPostRequest()

  createXMLHttpRequest();

  if (xmlHttp == null)

  alert( 不能创建 XmlHttpRequest 对象 );

  return;

  

  var data = param =abc ;

  xmlHttp open( POST WebService asmx/GetTestUser?t= + Date parse(new Date()) true);

  xmlHttp setRequestHeader( Content type application/x form urlencoded );

  xmlHttp setRequestHeader( Content length data length);

  xmlHttp setRequestHeader( Connection close );

  xmlHttp onreadystatechange = function ()

  if (xmlHttp readyState == )

  if (xmlHttp status == )

  var userList = xmlHttp responseXML getElementsByTagName( User );

  for (i = ; i < userList length; i++)

  document getElementById( post ) innerHTML += userList[i] getElementsByTagName( Name )[ ] firstChild nodeValue + ;

  document getElementById( post ) innerHTML += userList[i] getElementsByTagName( Title )[ ] firstChild nodeValue + <br/> ;

  

  

  

  ;

  xmlHttp send(data);

  

  </script>

  </head>

  <body>

  <input type= button value= GET 方法调用 onclick= AsynRequest() />

  <input type= button value= POST方法调用 onclick= AsynPostRequest() />

  <div id= get ></div>

  <div id= post ></div>

  </body>

  </>

  需要注意的是 使用此方法需要在nfig里加入以下的配置

  nfig 代码

  <system web>

  <webServices>

  <protocols>

  <add name = HttpPost />

  <add name = HttpGet />

  </protocols>

  </webServices>

cha138/Article/program/net/201311/12604

相关参考

知识大全 javascript直接调用asp.net方法的技术——介绍pixysoft.ajax技术

  前言本技术完全开源请各位兄弟随便修改使用但是必须能够保留相关版权的说明我的小小技术能在您的项目中使用是我的光荣希望不要破灭了我仅存的自豪感衷心感谢在此鞠躬!  本技术主要基提供页面的javascr

知识大全 asp.net中javascript的引用(直接引入和间接引入)

  Aspnet中引入Javascript的方法有很多在做牛腩的时候主要讲了两种个人认为可以分为直接引入和间接引入一直接引入在前台页面调用自定义的javascript函数打开前台页面在head元素之间

知识大全 在ASP.NET中调用存储过程方法新解

在ASP.NET中调用存储过程方法新解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在使用NET的

知识大全 在ASP.Net中应用Javascript

在ASP.Net中应用Javascript  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概要本

知识大全 如何在ASP.NET中使用JavaScript脚本

如何在ASP.NET中使用JavaScript脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 如何在ASP.Net Ajax中调用WebService

如何在ASP.NetAjax中调用WebService  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 在ASP.NET Atlas中调用Web Service

在ASP.NETAtlas中调用WebService  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 asp.net后台cs中的JSON格式变量在前台Js中调用方法

asp.net后台cs中的JSON格式变量在前台Js中调用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 ASP.NET中如何调用存储过程

ASP.NET中如何调用存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ASPNET与

知识大全 ASP.NET 中整合JavaScript的技巧

ASP.NET中整合JavaScript的技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽