我尝试通过jQuery Ajax在ASP.NET中调用函数,如下所示:
var params = "{'name':" + "\"" + name + "\"}";
$.ajax({
type: "POST",
url: "CreateTopic.aspx/CreateNewTopic",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
},
failure: function (response) {
alert("Failed to send : " + response);
}
});
我收到[HTTP / 1.1 500内部服务器错误]。
如果我这样做:
var params = "{'name':" + "\"" + name + "\"}";
$.post("CreateTopic.aspx/CreateNewTopic", params);
我得到:[HTTP / 1.1 200 OK]
但是我在这里调试了调试点:
[System.Web.Services.WebMethod]
public static object CreateNewTopic(string name)
{
return PrivateTopic.createNewTopic(name, 1);
}
未到达。
答案 0 :(得分:0)
你不会相信,但答案是:
将目标框架更改为.NET 4.0
此代码有效:
var params = "{'name':" + "\"" + name + "\"}";
$.ajax({
type: "POST",
url: "CreateTopic.aspx/CreateNewTopic",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert("Topic " + name + " wurde erfolgreich gespeichert.");
},
failure: function (response) {
alert("Failed to send : " + response);
}
});
答案 1 :(得分:0)
您的数据属性应为{'name':“+”\“”+ name +“\”} 不是“{'name':”+“\”“+ name +”\“}”,前者是一个对象,而后者是一个无效的查询参数字符串。 更好的是,只需尝试下面的行而不是使用'params'变量。
$.ajax({
type: "POST",
url: "CreateTopic.aspx/CreateNewTopic",
data: {'name':" + "\"" + name + "\"},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
},
failure: function (response) {
alert("Failed to send : " + response);
}
});