为什么ajax请求无法正常工作?
我一直在用asp.net和ajax请求使用JQuery。我不明白为什么以下不起作用。我错过了什么吗?它似乎会触发请求(没有错误),但它永远不会进入方法。为什么ajax请求无法正常工作?
// asp.net webforms (NOT MVC)
public partial class PollManager : System.Web.UI.Page
{
[WebMethod]
[ScriptMethod]
public static string DeletePoll(string pollId)
{
string test = "testing";
return test;
}
}
**Updated Code**
$.ajax({
url: "PollManager.aspx/DeletePoll",
data: { "pollId": "17" },
dataType: "text",
success: function (data)
{
alert(data);
}
});
在母版页有一个<asp:toolkitscriptmanager>
,我不知道这有什么差别。
那么...一个data: "17"
是不会工作的。你需要做一些像data: {"pollId" : "17"}
仍然没有进入调试的服务器端方法 – chobo 2011-03-24 17:38:00
这似乎是你混合ASP.NET Web服务和ASP.NET MVC路线。 ASP.NET Web窗体运行时(ASPX)无法知道如何获取数据(17)并将其映射到pollId参数。
我读过,它可能与asp.net,我只是不能得到它的工作 – chobo 2011-03-24 17:38:24
你需要一个success
处理程序添加到您的选择哈希被传递到$.ajax
,像这样:
$.ajax({
url: "PollManager.aspx/DeletePoll",
data: "17",
dataType: "text",
success: function(data) {
alert(data);
}
});
谢谢,忘了所有关于:)该警报只是显示一个空框 – chobo 2011-03-24 17:36:16
我认为你需要删除[ScriptMethod]
,或者将其更改为[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
,因为你不想要XML格式的响应。你想要JSON响应,不是吗?我也不知道它是如何序列化一个字符串对象的,但是你可能也想尝试返回一个你定义的对象。像new SomeResponseObject(){ MyResponseText="some text" }
然后,如果你返回该对象,在JavaScript中,你应该能够访问它像这样data.MyResponseText
您可以编辑您的问题发表关于服务器端更多的代码?这是一个MVC页面吗?它是一个Web窗体应用程序?如果它的MVC可以发布你建立的路线吗? – 7wp 2011-03-24 17:40:21
它是webforms,而不是MVC – chobo 2011-03-24 17:44:38
它对我来说看起来像一个web服务,而不是我认为的Web窗体。 – 7wp 2011-03-25 04:13:13