使用Ajax从Jquery调用时出现未知的WebMethod错误

时间:2014-04-18 07:17:52

标签: javascript jquery asp.net ajax web-services

我有一个web方法,我试图从jquery ajax调用,但它没有被调用。 在萤火虫当我看到我得到的回应时,

<title>Unknown web method MyMethod.<br>Parameter name: methodName</title>

错误。当服务器端有该方法时,我无法理解为什么会出现此错误的原因。 这是我的客户端代码..

$("#excel").on("click", function (e) {
            e.preventDefault();
            var img = "image";
            $.ajax({
                type: "POST",
                url: "Default.aspx/MyMethod",
                data: JSON.stringify({ imageData: img }),
                contentType: "application/json; charset=utf-8"
            }).done(function (o) {
                console.log(["Response:", o]);
            });
        });

这是我的服务器端代码..

[WebMethod()]
public static void MyMethod(string imageData)
{

    string fileNameWitPath = "D:/Kabir/custom_name.png";
    using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
    {
        using (BinaryWriter bw = new BinaryWriter(fs))
        {
            byte[] data = Convert.FromBase64String(imageData);//convert from base64
            bw.Write(data);
            bw.Close();
        }
    }
}

请帮助我解决这个问题,因为我完全被这个问题所困扰。 提前谢谢..

2 个答案:

答案 0 :(得分:0)

使用它对我有用 System.Web.Services.WebMethod
试试这个

[System.Web.Services.WebMethod]
public static void MyMethod(string imageData)
{
}  
  • System.Web.Services.WebMethod()
    初始化System.Web.Services.WebMethodAttribute类的新实例
  • System.Web.Services.WebMethod
    将此属性添加到使用ASP.NET创建的XML Web服务中的方法可使该方法可从远程Web客户端调用

如果以上操作无效,请确保您传递的url正确无误。如果它不起作用Check this out

仍然存在

这确实对我的系统有效
Default.aspx

<form id="form1" runat="server">
<div id="excel">
    Here</div>
</form>
<script type="text/javascript">
    $("#excel").on("click", function (e) {
        e.preventDefault();
        var img = "image";
        $.ajax({
            type: "POST",
            url: "Default.aspx/MyMethod",
            data: JSON.stringify({ imageData: "Hello" }),
            contentType: "application/json; charset=utf-8"
        }).done(function (o) {
            console.log(["Response:", o]);
        });
    });
</script>

Default.aspx.cs

[System.Web.Services.WebMethod]
public static string MyMethod(string imageData)
{
    return imageData;
}

答案 1 :(得分:0)

如果您正在寻找有关VB.net的答案,则需要制作您的函数Public Shared。我自己也遇到了这个问题。