Ajax Post to Overloading c# web service方法

Posted

技术标签:

【中文标题】Ajax Post to Overloading c# web service方法【英文标题】:Ajax Post to Overloading c# web service method 【发布时间】:2017-03-24 06:13:17 【问题描述】:

我在 C# 中有一个 webService,当我不重载它时它可以完美运行。 当我重载并使用 ajax 发布时,它会报错。

$.ajax(
    type: "POST",
    url: "http://localhost:6783/asd.asmx/add",
    data: data,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) 
        console.log(msg);
    ,
    error: function () 
        alert("this error");
    
);

在 C# 中

[WebMethod(MessageName = "add2")]
public int add(int a,int b)

    return a+b;


[WebMethod(MessageName = "add3")]
public int add(int a, int b, int c)

    return a + b + c;

我添加了这个:

[WebServiceBinding(ConformsTo = WsiProfiles.None)]

当我测试网络服务时,它可以工作。但是,当我使用 ajax 调用时,它不起作用。

【问题讨论】:

您遇到了什么错误? CORS? 未知网络方法添加。参数名称:methodName 说明:当前web请求执行过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.ArgumentException:未知的 Web 方法添加。参数名称:methodName 源错误:在执行当前 Web 请求期间产生了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。 您正在调用addnumber - 该方法不存在。至少在您提供的示例代码中没有 我改了添加。 【参考方案1】:

如果添加 MessageName 属性,则必须使用 MessageName 作为端点。 例如myservice.asmx/mymessagename

此页面http://www.c-sharpcorner.com/UploadFile/00a8b7/web-service/ 说:

“SumOfNums MessageName="SumOfFloats"”方法将被称为 客户端应用程序的“SumOfFloats”。

【讨论】:

澄清一下,你的意思是调用重载方法,而不是调用“localhost:6783/asd.asmx/add”,他们需要调用“localhost:6783/asd.asmx/add2”或“localhost:6783/asd.asmx/add3”,正确?如果是这样,您应该将该特定信息添加到您的答案中

以上是关于Ajax Post to Overloading c# web service方法的主要内容,如果未能解决你的问题,请参考以下文章

像Statu Ajax Post Graph Api

Ajax POST 在 IE11 中不起作用

Ajax Post Content Type : Application / Json Block the request

前端ajax用post方式提交json数据给后端时,网络报错 415

403 Forbidden while making ajax request to endpoint in Django

如何在 Django 的 ajax POST 中返回新的 csrf 令牌?