我试图使用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)
当我试着发布时,抛出了上述异常。
如果你的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的一个常见错误。