我有一个类似这样的webmethod:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string test(string Name, int? Age)
{
return "returned value";
}
和ajax调用:
$.ajax({
type: "GET",
url: "form.aspx/test",
data: {'Name': "n1", 'Age': 30},
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
}
});
没有参数/数据,它可以工作,但当我试图传递一些参数时,我得到了这个错误:
GET http://localhost:55410/test.aspx/test?Name=n1&Age=30
500 (Internal Server Error)
我认为这是一个详细的例外:
System.ArgumentException: Unknown web method form.
Parameter name: methodName
发布于 2018-05-30 07:39:41
您需要传递一个对象而不是字符串,并用引号将n1
括起来使其成为字符串:
$.ajax({
type: "GET",
url: "test.aspx/test",
data: {'Name': 'n1', 'Age': 30}, // remove quotes & add quotes to n1
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
}
});
发布于 2018-05-30 07:57:22
如果你想通过url传递参数,你根本不需要使用data
属性:只需在url本身中传递它们,如下所示:
$.ajax({
type: "GET",
url: "form.aspx/test?name=" + yourStringVariabel + "&age=" + yourAgeVariabel,
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
}
});
尝试一个帖子,看看它是否有效:
$.ajax({
type: "POST",
url: "form.aspx/test",
data: JSON.stringify({ name: 'N1', age : 1 }),
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
}
});
https://stackoverflow.com/questions/50594387
复制相似问题