【问题标题】:jQuery: why does $.post does a GET instead of a POSTjQuery:为什么 $.post 做一个 GET 而不是一个 POST
【发布时间】:2009-08-13 20:50:45
【问题描述】:

我正在尝试进行 ajax 调用并使用 ajax 调用的结果填充“数据”div, 但我收到一条错误消息:“'/' 应用程序中的服务器错误。找不到资源。描述:HTTP 404。请求的 URL:/Home/GetStuff” 当我查看 Firebug 时,请求是对 /Home/GetStuff 的 GET,而答案是 404 Not found。为什么我没有按照我在 ajax 调用中的要求进行 POST?我如何进行 POST?

我尝试使用 $.post 并得到相同的行为,虽然我没有检查 jquery 代码,但我认为 $.post 是 $.ajax 的包装器。

我还尝试了 Ajax.ActionLink,它工作正常,但我想使用 jQuery 而不是 Microsoft 的 ajax js 库。

代码如下:

Home/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>";
}

【问题讨论】:

    标签: asp.net-mvc jquery


    【解决方案1】:

    将您的 onclick="aClick" 更改为 onclick="aClick(); return false;"。单击链接是在获取 URL,而不是运行您的 JS。

    【讨论】:

    • 这将禁用链接,但 url.Action 是首先导致 GET 的原因。通过像 BStuthers 在这里所说的那样添加 return false ,它应该可以解决这个问题。
    • 你不认为他调用 renderData 而没有传递任何东西也可能是个问题吗?
    • 我已将 onclick="aClick" 更改为 onclick="aClick(); return false;"它工作得很好。似乎按原样调用 renderData 效果很好,除了它应该说: $("#Data").html(data);非常感谢大家。
    【解决方案2】:
    $('#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

    【讨论】:

      猜你喜欢
      • 2017-06-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多