我正在尝试使用javascript从客户端访问webservice。我已经成功创建了webservice。我已成功在网站项目中使用它,但它是Web应用程序项目。
这是我的HTML代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
function Test() {
WebService1.HelloWorld(onS, onF);
}
function onS(r) { alert("Result"); }
function onF(er) { alert("Error"); }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference InlineScript="true" Path="~/WebService1.asmx"/>
</Services>
</asp:ScriptManager>
<input type="button" value="Call Service" onclick="Test()" />
</div>
</form>
</body>
</html>
这是WebService代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace TestWebService
{
/// <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 HelloWorld()
{
return "Hello World";
}
}
}
现在这段代码无效了。
我正在使用框架3.5和VS2012。
答案 0 :(得分:1)
我找到了答案。我应该在Web服务名称之前使用命名空间,如此
function Test() {
TestWebService.WebService1.HelloWorld(onS, onF);
}
这是网站项目和Web应用程序项目之间的区别。
答案 1 :(得分:0)
您可以使用JQuery的AJAX功能来访问Web服务。它易于使用且功能强大。
之前在stackoverflow.com上已经回答了类似的问题。这是一个供您查看的链接。
祝你好运!