2

我正在使用 $.ajax() 从 Javascript(在 cshtml 文件中)调用 ASP.NET MVC 4 控制方法,如下所示

        $.ajax({
            url: '@Url.Action("MyAction", "MyController")',
            type: 'GET',
            data: { 'id': "123"},
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            success: function (data) {
            }
        });

控制器动作方法是

    public JsonResult MyAction(string id)
    {
        // Do stuff
        return new JsonResult();
    }

这被称为 ok 但导致 GET 500(内部服务器错误)。

我并不真正关心返回的数据,我只想调用控制器方法来更新模型。

谁能让我知道为什么我要获得 500 或另一种很棒的方法。

4

1 回答 1

4

出于安全原因,您不能在 ajax 请求中使用 GET 方法(请参阅JSON Hijacking)。

你只需要这样做:

   return Json(data, JsonRequestBehavior.AllowGet)

或者更好,更改发布的方法

   type: 'POST',
于 2013-07-24T10:45:10.350 回答