JavaScript 调用 ASP.NET WebService 的简单方法

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

  ASMX 代码:

<%@ WebService
Language="C#" CodeBehind="WebService1.asmx.cs" Class="WebService1" %>  C#代码:using System;

using System.
Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Data;

/// <summary>

/// Summary description for WebService1

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.ComponentModel.
ToolboxItem(false)]

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

// [System.Web.Script.Services.ScriptService]

public class WebService1 : 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(Int32)));

dt.Columns.Add(new DataColumn("text", typeof(string)));

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

{

dr = dt.NewRow();

dr[0] = i;

dr[1] = "列表项目 " + 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["param1"];

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

for (int i = 0; i < 10; 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 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<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", "WebService1.asmx/GetTestUser?param=net_lover", true);

xmlHttp.setRequestHeader("Connection", "close");

xmlHttp.onreadystatechange =
function () {

if (xmlHttp.readyState == 4) {

if (xmlHttp.status == 200) {

var
userList = xmlHttp.responseXML.getElementsByTagName("User");

for (i = 0; i < userList.length; i++) {

document.getElementById("get1").innerHTML += userList[i].getElementsByTagName("Name")[0].firstChild.nodeValue + ":";

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

}

}

}

};

xmlHttp.send();

}

function AsynPostRequest() {

createXMLHttpRequest();

if (xmlHttp == null) {

alert("不能创建 XmlHttpRequest 对象");

return;

}

var data = "param1=abc";

xmlHttp.open("POST", "WebService1.asmx/GetTestUser?t=" + Date.parse(new Date()), true);

xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlHttp.setRequestHeader("Content-length", data.length);

xmlHttp.setRequestHeader("Connection", "close");

xmlHttp.onreadystatechange = function () {

if (xmlHttp.readyState == 4) {

if (xmlHttp.status == 200) {

var userList = xmlHttp.responseXML.getElementsByTagName("User");

for (i = 0; i < userList.length; i++) {

document.getElementById("post1").innerHTML += userList[i].getElementsByTagName("Name")[0].firstChild.nodeValue + ":";

document.getElementById("post1").innerHTML

时间: 2024-12-02 13:27:58

JavaScript 调用 ASP.NET WebService 的简单方法的相关文章

一起谈.NET技术,JavaScript 调用 ASP.NET WebService 的简单方法

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

实例讲解用Javascript调用ASP实现过程

javascript|过程 你或许见过这样的调用方式:<script language="javascript" src="xxx.js"></script>你也可能见过:<!-- #include file="xxx.asp" --> 但是下边的调用你就不一定见过了:<script language="javascript" src="xxx.asp?borid=5&

Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的各种数据类型做了一个总结! 本文章没有什么高难度技术,就是记录一下,汇总一下,以便以后需要时查看! 本总结牵涉的数据类型,主要有: string,int这样的基本数据类型 ClassA这样的自定义类 List<ClassA>这样的集合类型 Dictionary这样的字典类型数据 DataSet这样

php soap调用asp.net webservice

原文:php soap调用asp.net webservice 首先做一下准备工作,找到安装环境里的php.ini把;extension=php_soap.dll去掉前面的;.我这里使用的是wamp,php-php扩展里把php_soap启用就可以了. 一.用vs2008新建一个webservice:using System;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services

js调用父框架函数与弹窗调用父页面函数的简单方法_javascript技巧

调用父级中的 aaa的函数 子页面中: onclick="window.parent.frames.aaa()" 父页面中: function aaa() { alert('bbbbb'); } frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent window.opener引用的是window.open打开的页面的父页面. window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面. 可以这样 window.frames[0]

jQuery Ajax方法调用Asp.Net WebService的详细例子

这很常用,搜索了一下博客园的"找找看"和谷歌,看到大部分都是转载于一两篇文章(而且来源还不是博客园),有的是简单的说一点无法运行,给初学者的调试和学习带来不方便,我在这里将jQuery Ajax 调用Aspx.Net WebService 的几个常用的方法做了一个整理,提供给正在找这方面内容的博友,希望能给学习jQuery的朋友一点帮助,可以直接复制代码运行. ws.aspx 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

PHP通过传递对象参数调用asp.net Webservice 服务

asp.net 测试服务 ProcessRequest.asmx文件代码  public class ProcessRequest : System.Web.Services.WebService    { [WebMethod] public Customer RegisterCustomer(Customer customer) { var obj = new Customer(); obj.Name = customer.Name +"_Return"; obj.LastName

jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码_jquery

ws.aspx 代码 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1&q

javascript下查找父节点的简单方法_javascript技巧

<div>        <a href="#">标题</a>        <ul id="demo">            <li><a href="#" onclick="selectThisItem(this)">项目一</a></li>                <ul>