我正在尝试创建一个Web服务,它接收数据,将其发布到数据库,然后返回结果。我知道如何编写所有这样做的C#代码,但这是我遇到问题的沟通。目前,我只是试图调用该服务并返回“Hello World”(我从简单的事情开始,因为我不知道我在做什么)......
我的Jquery:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "PersonService.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function(msg) {
alert("Success");
$("#log").html(msg);
alert(msg);
}
});
我的网络服务:
public class PersonService : System.Web.Services.WebService
{
~
[WebMethod(CacheDuration = CacheHelloWorldTime,
Description="As simple as it gets - the ubiquitous Hello World.")]
public string HelloWorld()
{
return "Hello World";
}
~
}
使用chrome检查元素,然后选择Network选项卡,找到我的webservice,它显示结果是:
<?xml version="1.0" encoding="utf-8"?>
<string>Hello World</string>
因此,似乎服务执行成功,但成功函数不会触发,并且控制台中没有错误。到底是怎么回事?另外,为什么结果是XML?
我是否需要使用Web服务,或者我是否可以通过AJAX将变量发布到ASPX页面,该页面将以与表单提交相同的方式处理它?</ p>
答案 0 :(得分:2)
Using jQuery to Consume ASP.NET JSON Web Services » Encosia
$(document).ready(function() {
$.ajax({
type: "POST",
url: "RSSReader.asmx/GetRSSReader",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Hide the fake progress indicator graphic.
$('#RSSContent').removeClass('loading');
// Insert the returned HTML into the <div>.
$('#RSSContent').html(msg.d);
}
});
});
此外,您在网络服务方法上遗漏了[ScriptMethod],在服务类上遗漏了[ScriptService]。
[WebService]
[ScriptService]
public class PersonService : WebService
{
[ScriptMethod]
[WebMethod(CacheDuration = CacheHelloWorldTime,
Description="As simple as it gets - the ubiquitous Hello World.")]
public string HelloWorld()
{
return "Hello World";
}
}