2010-11-05 49 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