我已经看到了几个与此相关的主题,并且我已经尝试了所有答案 ( ASP.NET MVC JsonResult return 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);
}
});
我的行动:
[HttpPost]
public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
{
FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);
return Json(updatedItem, JsonRequestBehavior.DenyGet);
}
使用 Chrome 控制台,这些是回复的响应 header :
HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 18 Dec 2012 21:53:41 GMT Content-Length: 17041
服务器日志未显示任何子状态代码。知道我在这里做错了什么吗?我更喜欢使用 POST 而不是 GET。
表单数据显示为:
itemToUpdateId:18ac5399-342e-4a39-9da1-3281a89501df
newParentItemId:null
newPreviousItemId:null
哪个是正确的。
我尝试将 contentType 设置为 application/json 和传统= true,就像这个问题一样:Sending ajax post to mvc with "application/json; charset=utf-8" returns error 500 from vs web developer server
同样的错误。
最佳答案
好吧,我能够找出问题所在,我的 AJAX 语法甚至操作都没有问题。只是我返回的对象包含循环引用。通过单击“网络”选项卡下的 POST 请求,然后查看预览选项卡,我能够在 Chrome 控制台中看到实际错误。这显示了实际的错误消息。
关于asp.net-mvc - Ajax 请求返回 HTTP 错误 500,使用 MVC 和 $.ajax 调用 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942304/