2013-08-28 20 views
1

試圖調用使用AJAX這個Web服務調用一個webserice ...用ajax

的Web服務如下

public class WebService1 : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public String countryCode(String input) 
    { 



      StringBuilder strings = new StringBuilder("", 10000); 
      String text = System.IO.File.ReadAllText(Server.MapPath("countryCodes.txt")); 
      String[] countries = Regex.Split(text, "#"); 

      var valids = new List<String>(); 
      foreach (String c in countries) 
      { 
       if (c.ToUpper().StartsWith(input.ToUpper()) || c.ToLower().StartsWith(input.ToLower())) 
       { 
        if (input == "") 
        { 
         break; 
        } 

        valids.Add(c); 
       } 
      } 
      return (valids.Any()) ? String.Join(" ", valids) : "No results found for your input!"; 

     } 


    } 

我已經建立了一個空的Web表單,並呼籲在服務引用像這樣

<body> 
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     <Services> 
      <asp:ServiceReference Path="~/WebService1.asmx" /> 
     </Services> 
    </asp:ScriptManager> 

腳本經理,我有我的JavaScript低於

如下

現在,我的理解是,當按下按鈕,它會採取輸入TextBox1's值,並用它作爲論據我WebService.countryCode方法,因此,如果它成功,它將設置label 3該方法的結果,如果它不成功它將設置label 3所提供的串...

然而,這不會發生....逸岸沒有什麼,當我點擊我的按鈕,爲了清楚發生了,這是我的按鈕聲明...

<input type="button" value="Find Country Codes " onclick ="onClick()" /> 

此按鈕位於自動售貨機的相同位置編輯textbox1和標籤代碼生成。

所以我的問題是,我做錯了什麼,它如何解決?

任何需要澄清後只需發表謝意。

問候

編輯:是的,我已經在Web服務

"[System.Web.Script.Services.ScriptService]" 

回答

1

註釋掉此行與[System.Web.Script.Services.ScriptService]裝飾你的Web服務類,像這樣:

[System.Web.Script.Services.ScriptService] 
public class WebService1 : System.Web.Services.WebService 

這允許你Web服務將被您的JavaScript調用。

此外,您的通話切換到Web服務,以去除CountryCodes前綴,像這樣:

var onClick = function() { 
    WebService1.countryCode($get("TextBox1"), onSucess, onFailed); 
} 
+0

乾杯卡爾很大的幫助 – Jim

+0

大,很高興它幫助。隨意也可以對問題進行投票。 :-) –

+0

卡爾安德森,當然 – Jim