AJAX 调用 ASMX 网络方法无效

AJAX call for ASMX web method not working

我正在尝试使用 ajax 调用来调用 Web 方法(ASMX 服务),下面是我的 ajax 调用:

$.ajax({
    type: "POST",
    url: "/License.asmx/SubmitDatas",
    data: jsonString,
    Type: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        var data = response;
        console.log(data);
        $('#monitordata').append(JSON.stringify(data))
    },
    failure: function (response) {
        console.log(response);
    }
});

后端 ASMX 服务:

[WebMethod]
public string SubmitDatas(SubmitData submitData)
{

}

注意:SubmitData是我自定义的模型class

错误:

System.InvalidOperationException: SubmitDatas Web Service method name is not valid.
   at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
   at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)

当我尝试 post 时,抛出上述异常。

如果您的 asmx 文件位于根目录中,请尝试从 url 中删除第一个斜杠(不确定是否重要)。

用小 t 拼写 Type。我将不得不假设 jsonString 没问题。 (似乎不相关。)

请注意,您的方法参数接受类型 SubmitData

public string SubmitDatas(SubmitData submitData)

但是你发送的是一个字符串。你的方法参数应该是

[WebMethod]
public string SubmitDatas(string submitData) // <-- string.
{

}

此外,仅供参考,Datas 是一个常见错误。 Datas 不是英文单词; data 是 datum 的复数形式。在英语中,datas 从未 使用过。 ESL的一个常见错误。