2010-11-05 75 views
1

我正在做一个带有web服务的asp.net项目。我的网络服务,我的asp.net项目是独立的,我的asp.net项目有我的web服务的参考在javascript中调用WebService

我使用Visual Studio 2008的框架3.5和我的服务网络是在vb.net

我想打电话给我的Web服务的Web方法在JavaScript

我的剧本经理宣布

<asp:ScriptManager runat="server" ID="scriptManager" EnablePageMethods="true" > 
    <Services> 
      <asp:ServiceReference path="http://localhost:2931/ServiceCompas.asmx"/> 
    </Services> 
</asp:ScriptManager> 

的JavaScript函数

<script type="text/javascript"> 

function test() { 
      alert('test'); 
      Service1.Liste_Carte(Onsucced); 
     } 

     function Onsucced(resultat) { 
      alert('je suis passée'); 

     } 

    </script> 

服务1是类的我的web

的和我所说的功能测试与我的按钮

<input name="btnRecherche" class="btnRechercher" type="button" value="Rechercher un emplacement" onclick="test()" /> 

的问题是:JavaScript的说是没有定义服务1,但为什么呢?有什么问题?

+0

都跑我们不介意一点法语在这里,作为只要重要的位置在英语中。 – DOK 2010-11-05 17:24:51

+0

非常小的一点:JavaScript约定是大写你打算用作构造函数的函数的名字,所以'未修改'应该是'onsucced'(或者说,'onsuccess')。 – 2011-02-18 16:15:15

回答

0
<script src="WebService.asmx/js" type="text/javascript"></script> 

因为我试图解决同样的问题,我可以看到这个可能会根据丢失的地方:http://weblogs.asp.net/dwahlin/archive/2006/12/28/understanding-asp-net-ajax-web-service-proxies.aspx(以上链接)

这样说,在service.asmx/js文件无法找到...有什么具体的要做,它会被生成?

编辑,工作对我来说,这里是代码:

<%@ 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> 
0

这可能是由于跨域安全限制(不同端口得到不同的领域尽可能的浏览器而言)。

它看起来像你使用的开发网络服务器。在本地调试时,单独的项目将在不同的端口上运行,这会产生此问题。

为了进行测试,您可以尝试使用IIS和创建不同的顶级目录应用程序,这样他们就可以在同一时间上的端口80