我正在尝试进行ajax调用并使用ajax调用的结果填充“Data”div, 但我得到一个错误说:“/'应用程序中的服务器错误。无法找到资源。说明:HTTP 404.请求的URL:/ Home / GetStuff” 当我查看Firebug时,请求是对/ Home / GetStuff的GET,答案是404未找到。为什么我不按照我在ajax调用中的要求进行POST?我怎么办POST?
我尝试使用$ .post并获得相同的行为,虽然我没有检查jquery代码,但我认为$ .post是$ .ajax的包装。
此外我尝试了Ajax.ActionLink并且它工作正常,但我想使用jQuery而不是Microsoft的ajax js库。
代码如下:
主/ TestStuff.aspx
function aClick() {
$.ajax({
type: "POST",
url: $("#MeFwd").href,
data: ({ accesscode: 102, fname: "JOHN", page: 0 }),
dataType: "html",
success: renderData
});
};
function renderData(data) {
$("#Data").html(data.get_data());
}
<div id="Data">
</div>
<div id="link">
<a href="<%= Url.Action("GetStuff", "Home") %>" id="MeFwd" onclick="aClick"> Click Me!</a>
</div>
HomeController.cs
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetStuff(int accessCode, string fName, int? page)
{
return "<table><tr><td>Hello World!</td></tr></table>";
}
答案 0 :(得分:6)
将你的onclick =“aClick”更改为onclick =“aClick();返回false;”。点击链接即可访问网址而不是运行JS。
答案 1 :(得分:0)
$('#MeFwd').click(function() {
$.ajax({
type: "POST",
url: $("#MeFwd").href,
data: ({ accesscode: 102, fname: "JOHN", page: 0 }),
dataType: "html",
success: function(data){
$("#Data").html(data);
});
});
};
我认为你不能在返回时调用函数......但我可能错了。