Ajax请求使用POST使用MVC和$ .ajax调用返回HTTP错误500?

Sve*_*ang 26 asp.net-mvc jquery asp.net-ajax

我已经看过几个关于这个的线程,我已经尝试了所有的答案(ASP.NET MVC JsonResult返回500)

我的ajax请求正在重新发送500内部错误.如果我调试我甚至从未接受过我的行动.

这是我的ajax电话:

$.ajax({
                    url: '@Url.Action("UpdateSortOrder", "FormItems")',
                    data: { itemToUpdateId: item.attr("id"), newParentItemId: parentItemId, newPreviousItemId: previousItemId },
                    type: 'POST',
                    success: function (data) {
                        console.log(data);
                    },
                    error: function (xhr, status, exception) {
                        console.log("Error: " + exception + ", Status: " + status);
                    }
                });
Run Code Online (Sandbox Code Playgroud)

我的行动:

[HttpPost]
    public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
    {
        FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);

        return Json(updatedItem, JsonRequestBehavior.DenyGet);
    }
Run Code Online (Sandbox Code Playgroud)

使用chrome控制台,这些是来自回复的响应标头:

HTTP/1.1 500内部服务器错误缓存控制:私有内容类型:text/html; charset = utf-8服务器:Microsoft-IIS/7.5 X-AspNetMvc-版本:3.0 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET日期:星期二,2012年12月18日21:53:41 GMT内容长度:17041

服务器日志不显示子状态代码.知道我在这里做错了什么吗?我更喜欢使用POST而不是GET.

表格数据显示为:

itemToUpdateId:18ac5399-342e-4a39-9da1-3281a89501df

newParentItemId:空

newPreviousItemId:空

哪个是对的.

我已经尝试将contentType设置为application/json和traditional = true,就像在这个问题中一样:使用"application/json; charset = utf-8"将ajax帖子发送到mvc,从vs web开发者服务器返回错误500

同样的错误.

Sve*_*ang 74

好吧,我能够弄清问题是什么,我的AJAX语法,甚至行动都没有错.只是我返回的对象包含一个循环引用.通过单击"网络"选项卡下的POST请求,然后查看预览选项卡,我能够在chrome控制台中看到实际错误.这显示了实际的错误消息.

  • 能够使用网络选项卡>详细信息>响应正文在IE11开发者工具中进行类似的故障排除. (2认同)