尝试从jQuery提交异步调用时,在有效的URL上获取404

时间:2017-02-16 15:59:37

标签: javascript c# jquery ajax asp.net-mvc

我有一个看起来像这样的jQuery方法:

$(document).on("keyup", ".txtTag", function (event) {
    var bomItemID = $(this).data('bomitemid');
    var tag = $(this).val();
    $.post("/BillOfMaterial/SetTag?BomItemID=" + bomItemID + "&Tag=" + tag, function (result) {
            // don't do anything
    });
});

在浏览器的控制台中,我收到以下错误消息:

  

无法加载资源:服务器响应状态为404(未找到)   http://localhost:61560/BillOfMaterial/SetTag?BomItemID=3671&Tag=xz

但是,当我点击该链接时,它可以正常工作。我甚至可以在服务器上的方法SetTag()中找到一个断点。

这是服务器端方法:

[HttpGet]
public ActionResult SetTag(int BomItemID, string Tag)
{
    ... do stuff
    return Json("SUCCESS", JsonRequestBehavior.AllowGet);
}

1 个答案:

答案 0 :(得分:7)

您必须使用[HttpPost]请求方法,因为您提出post请求。

[HttpPost]
public ActionResult SetTag(int BomItemID, string Tag)
{
    ... do stuff
    return Json("SUCCESS");
}

另一个解决方案是使用$.get ajax调用来保持server-side方法声明。