Jquery Ajax学习实例6:向WebService发出请求,返回DataSet(XML) 异步调用
本示例将演示如何使用jQuery的Ajax功能向Web Service发出异步请求,并处理返回的DataSet(XML)数据。
步骤1:创建Web Service
首先,我们需要创建一个Web Service,并提供返回DataSet(XML)的方法。下面是一个简单的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
/// <summary>
/// Summary description for EmployeeService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class EmployeeService : System.Web.Services.WebService
{
[WebMethod]
public DataSet GetEmployees()
{
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
string query = "SELECT EmployeeID, FirstName, LastName, Email FROM Employees";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet;
}
}
}
}
}
在上面的代码中,我们定义了一个名为"EmployeeService"的Web Service,并添加了一个名为"GetEmployees"的方法,该方法返回一个DataSet对象,其中包含数据库中的员工信息。请注意,我们使用了ConfigurationManager类来获取连接字符串,该类从Web.config文件中读取连接字符串。
步骤2:创建客户端页面
接下来,我们需要创建一个客户端页面,允许用户点击按钮并发出Ajax请求来调用我们的Web Service。我们需要在这个页面中添加一个HTML按钮和一个具有"id"属性的HTML元素,以便我们可以在Ajax请求完成后在该元素中显示结果。以下是一个简单的示例:
<!DOCTYPE html>
<html>
<head>
<title>jQuery Ajax Example</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btnGetData").click(function () {
$.ajax({
type: "POST",
url: "EmployeeService.asmx/GetEmployees",
contentType: "application/json; charset=utf-8",
dataType: "xml",
success: function (data, status) {
var xmlDoc = $.parseXML(data);
var xml = $(xmlDoc);
var employees = xml.find("Table");
var output = "<table><thead><tr><th>EmployeeID</th><th>FirstName</th><th>LastName</th><th>Email</th></tr></thead><tbody>";
$(employees).each(function () {
var employee = $(this);
var employeeID = employee.find("EmployeeID").text();
var firstName = employee.find("FirstName").text();
var lastName = employee.find("LastName").text();
var email = employee.find("Email").text();
output += "<tr><td>" + employeeID + "</td><td>" + firstName + "</td><td>" + lastName + "</td><td>" + email + "</td></tr>";
});
output += "</tbody></table>";
$("#output").html(output);
},
error: function (jqXHR, status, error) {
alert("Error retrieving data. Error message: " + error);
}
});
});
});
</script>
</head>
<body>
<h1>jQuery Ajax Example</h1>
<p>Click the button to retrieve data from the web service.</p>
<button id="btnGetData">Get Data</button>
<div id="output"></div>
</body>
</html>
在上面的代码中,我们使用jQuery的Ajax功能向我们的Web Service发送请求。我们配置这个请求以发送POST请求,使用"EmployeeService.asmx/GetEmployees"作为URL,并设置请求的contentType和dataType分别为"application/json; charset=utf-8"和"xml"。我们在请求成功时使用jQuery的parseXML函数解析XML数据,并使用jQuery的find函数来查找我们感兴趣的XML元素。我们使用一个HTML表格来显示数据,每行一个员工。最后,我们将这个表格显示在我们的Web页面上,以便用户可以查看员工信息。
步骤3:运行应用程序
完成以上两个步骤后,我们必须运行我们的应用程序。我们必须确保我们的Web Service被正确部署,并且我们的客户端页面可以访问它。在运行应用程序后,我们可以单击按钮来从我们的Web Service获得数据。当请求完成时,我们将看到一个包含数据库中员工信息的HTML表格。
本示例演示了如何使用jQuery的Ajax功能异步调用Web Service方法,并获取Web Service返回的DataSet(XML)数据。我们通过配置Ajax请求来使用正确的contentType和dataType,以便可以正确地解析返回的XML数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用 - Python技术站