jquery调用c#函数时出现内部服务器错误

Internal server error when jquery call c# function

本文关键字:内部 服务器 错误 调用 函数 jquery      更新时间:2023-09-26

我正试图使用以下代码从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;
    }

试着像一样调用它

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

这和调用AJAX方法是一样的。除了参数、OnSuccess和OnError函数外,其他一切都由内部处理。

根据我的说法,web方法必须是publicstatic

您的方法应该是public,因为您是从javascript调用它的
它应该像

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

此外,为了了解错误详细信息,您应该使用以下中的error

error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
}