正如标题所述,我正试图用javascript调用ASP.Net(相同的解决方案,但在visual studio中的不同项目)编写的Web服务。由于我在此之前添加了服务的Web引用以便在VB.Net中调用它,因此我尝试通过直接调用它来使用此引用。
在Default.aspx页面的正文中,我有这段代码:
<asp:ScriptManager id="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/App_WebReferences/localhost/ServiceName.discomap" InlineScript="true" />
</Services>
</asp:ScriptManager>
但是在javascript中,我根本无法调用我的服务。谁能解释我怎么样?我想做这样的事情:
<script type="text/javascript">
alert(ServiceName.HelloWorld())
</script>
答案 0 :(得分:2)
最后找到了我认为正确的方法,它根本不需要jQuery,也不需要httprequest或任何奇怪的解决方法。这是相关的代码:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!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">
<script src="WebService.asmx/js" type="text/javascript"></script>
<script type="text/javascript">
function callback(msg) {
alert(msg);
};
function HelloWorld() {
WebService.HelloWorld(callback);
};
</script>
<title></title>
</head>
<body>
<div id="test" onclick="HelloWorld();">
click this
</div>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/WebService.asmx" />
</Services>
</asp:ScriptManager>
</form>
</body>
</html>