ASMX网络方法的AJAX调用不工作

问题描述 投票:0回答:1

我试图使用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是我的自定义模型类

ERROR:

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)

当我试着发布时,抛出了上述异常。

jquery asp.net-ajax asmx
1个回答
0
投票

如果你的asmx文件在根目录下,可以尝试从url中去掉第一个斜杠(不知道是否重要)。

拼写 Type 带着小 t. 我得假设jsonString是确定的。(好像没有关系。)

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

public string SubmitDatas(SubmitData submitData)

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

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

}

另外,fyi,Datas是一个常见的错误。Datas不是英语单词,data是datum的复数。在英语中,datas是 从来没有 用的。ESL的一个常见错误。

© www.soinside.com 2019 - 2024. All rights reserved.