2016-01-11 43 views
0

我想通過使用下面的代碼從jquery中調用c#函數。但我只能得到內部服務器錯誤。請幫助我找出爲什麼以及如何修復它。謝謝。當jquery調用c#函數時發生內部服務器錯誤

腳本

<script type="text/javascript"> 
    $(function() { 
     $(".matrix_tableActive").click(function (e) { 
      alert(e.target.id); 
      $.ajax({ 

       type: "POST", 
       url: "Default.aspx/Download", 
       data: JSON.stringify({ sth: "hahaha" }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: fnsuccesscallback, 
       error: fnerrorcallback 
      }); 
     }); 




    function fnsuccesscallback(data) { 
     alert(data.d); 

    } 
    function fnerrorcallback(result) { 
     alert(result.statusText); 
    } 

    }); 
</script> 

C#

[WebMethod] 
    protected static String Download(String sth) 
    { 
     return sth; 
    } 
+0

發現了這個。 http://stackoverflow.com/questions/4508409/ajax-method-call –

+0

請找出確切的錯誤並更新發布。在這一點上,博士要求一般的調試幫助,這對SO來說太廣泛了。 –

+0

謝謝@wit_peter我從那裏找到了正確的方法。 :) –

回答

0

嘗試調用它像,

window.PageMethods.Download('hahaha',fnsuccesscallback,fnerrorcallback) 

這是一樣的AJAX調用方法。除參數,OnSuccess和OnError函數外,其他所有內容都在內部處理。

另外根據我的網絡方法必須是publicstatic

0

當您從javascript調用它時,您的方法應該是public
應該是這樣

[WebMethod] 
public static String Download(String sth) 
{ 
    return sth; 
} 

也知道錯誤的細節,你應該使用error如下

error: function (xhr, ajaxOptions, thrownError) { 
    alert(xhr.status); 
    alert(thrownError); 
} 
相關問題