繁体   English   中英

在asp.net中使用Ajax进行Web服务调用

[英]Web service call with ajax in asp.net

我正在尝试通过jquery ajax使用Web服务。 调用了webservice方法并传递了参数,我想知道为什么ajax无法执行成功功能

这是我的ajax电话

<script type="text/javascript">
    function btn_add() {
        var a = $("#tb_a").val();
        var b = $("#tb_b").val();
        var c = $("#tb_c").val();
        var para = "a=" + a + "&b=" + b + "&c=" + c;

        $.ajax({
            type: "POST",
            url: "mywebservice.asmx/add",
            data: para,
            dataType: "text",
            success: function (res) {
                alert("success");
                console.log(res);
            }
        });
    }
</script>

编辑

这是我的网络服务代码

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

        [WebMethod, ScriptMethod]
        public int add( int a, int b, int c)
        {
            return a + b + c;
        }
    }

您应该看一下文档 ,它说您的呼叫可能像这样:

     $.ajax({
        type: "POST",
        url: "mywebservice.asmx/add",
        data: { a : $("#tb_a").val(), 
                b : $("#tb_b").val(),
                c : $("#tb_c").val() },
        success: function (res) {
            alert("success");
            console.log(res);
        }
    });

如果在您的服务器中有以下内容:

public string myFunction(string a, string b, string c)
{
    return a + b + c;
}

现在,如果那行不通,请看一下此答案 ,这是完成所需内容的另一种方法

您可能会收到404错误,请检查您的控制台,因为您的add方法签名与您在ajax调用中发送的内容不匹配。 你可以这样尝试

var aData=[];
    aData[0] = $("#tb_a").val();
    aData[1] = $("#tb_b").val();
    aData[2] = $("#tb_c").val();
    var jsonData = JSON.stringify({ aData:aData});
     $.ajax({
            type: "POST",
            url: "mywebservice.asmx/add", 
            data: jsonData,
            contentType: "application/json; charset=utf-8",
            dataType: "json", // dataType is json format
            success: OnSuccess,
            error: OnErrorCall
        });

    function OnSuccess(response){
     console.log(response.d);
    }

    function OnErrorCall(response){
     console.log(response.d);
    }

 [WebMethod, ScriptMethod]
  public int add(list<string> aData)
 {
     int cal=Convert.ToInt32(aData[0])+Convert.ToInt32(aData[1])+Convert.ToInt32(aData[2]);
    return cal;
 }

有关更多详细信息,请参阅Blog文章-Asp.net C#中的jQuery Ajax JSON示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM