2012-04-11 68 views
3

我想從java腳本調用C#方法,我是新開發的web開發人員,並且經過一番搜索之後,決定使用jQuery來做同樣的事情,我嘗試調用方法是:無法訪問使用jquery的C#方法

$.ajax({ 
      type: "POST", 
      url: "Default.aspx/IncrementJ", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      alert("success!") 
      } 
     }); 

這裏IncrementJ在這我想call.here C#定義我的函數名的定義是:

[WebMethod] 
    public static void IncrementJ() 
    { 

     try 
     { 
      j++; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

當我運行我的程序的Web控制檯拋出一個錯誤「不能找到資源增量j「;請告訴我哪裏出錯了,

謝謝。

+0

我假設服務在您的機器上運行?在這種情況下,嘗試將ajax調用中的url更改爲「http:// localhost:8080/Default.aspx/IncrementJ」。我將端口號指定爲8080,但您應該將其替換爲本地服務器運行的實際端口號,該端口號用於託管您嘗試使用的Web服務。 – praneetloke 2012-04-11 12:19:38

+0

腳本是否在外部文件中?如果是這樣,看看這個:http://stackoverflow.com/questions/5228106/calling-jquery-ajax-to-consume-webmethod-from-external-js-file – 2012-04-11 12:22:43

+0

是的服務器正在運行,而我能夠從服務器獲取數據,是的腳本是在asps.cs文件 – Snedden27 2012-04-11 12:27:33

回答

4

鑑於您的評論認爲,錯誤狀態404(未找到),可以推斷錯誤是代表調用腳本:

「傻瓜HTTP響應代碼」

50x: we messed up. 
40x: you messed up. 
30x: ask that dude over there. 
20x: cool. 

因此,鑑於該腳本找不到的WebMethod,我覺得它公平地推論,這是正在尋找錯誤的位置。引用Default.aspx/IncrementJ時,請嘗試放置相對路徑。

+0

是的路徑是錯誤的,有時asp.net有路徑混亂,再次感謝壽 – Snedden27 2012-04-12 06:42:15

1

一兩件事,我看到的是你需要刪除圍繞數據對象的報價..它應該是一個空的JS對象如{}"{}"

+0

我試過,但仍然是相同的錯誤,即無法加載資源:服務器的狀態爲404(未找到)迴應 – Snedden27 2012-04-11 12:22:50