jQuery:为什么$ .post执行GET而不是POST

时间:2009-08-13 11:46:54

标签: asp.net-mvc jquery

我正在尝试进行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>";
}

2 个答案:

答案 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);
       });
    });
};

我认为你不能在返回时调用函数......但我可能错了。

或者考虑加载: http://docs.jquery.com/Ajax/load#urldatacallback