服务器仅在表单提交时调用 preventDefault 时返回 500 错误
Server returning 500 error only when calling preventDefault on form submit
我正在尝试在不重定向的情况下在 ASP.NET MVC 表单上做一个简单的 AJAX 帖子,并且服务器不断返回 500 错误。当我删除 preventDefault 时,一切正常,但页面发生了变化,我看到 5000 个输出到它。
AJAX 请求:
$( ".commentForm" ).submit(function(e) {
// Without this it works fine, but it is needed so we don't leave page
e.preventDefault();
var $this = $(this);
var id = $this.attr("id");
$.ajax({
type: "POST",
url: "/Products/CreateComment",
data: $(id).serialize(),
dataType: "html",
success: function (data) {
alert(data);
}
});
});
ASP.NET MVC6 控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult CreateComment(ProductCommentViewModel vm)
{
if (ModelState.IsValid)
{
ProductComment prodComment = new ProductComment()
{
FeedPostId = vm.ProductComment.FeedPostId,
Content = vm.ProductComment.Content
};
return Json(5000);
}
return HttpBadRequest();
}
ajax 方法在服务器上抛出异常,因为您的方法需要ProductCommentViewModel
的数据,但使用 data: $(id).serialize(),
不会影响您的模型。您需要更改要使用的 ajax
data: $this.serialize(),
dataType: "json",
即您发送的数据是序列化的表单值,并且由于 yout 方法返回 json,因此dataType
也必须'json'
相关文章:
- CKFinder 3为所选文件返回错误的URL
- WebView返回错误的window.innerHeight
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- sqlite查询返回错误-can'我不知道为什么
- Javascript返回错误的Date值(NodeJS)
- javascript getDate getMonth返回错误的月份
- 函数返回错误'令牌{'
- 为什么我在Cloud9中的http请求总是返回错误
- 当jQuery返回错误时,如何在jQuery中重新发送ajax请求
- ontouchend-ios返回错误的坐标
- node.js mongojs findOne回调返回错误为null
- jQuery Ajax+经典ASP返回错误'意外的输入结束'
- 如果URL's链接返回错误
- 时刻.js时区值返回错误的时间戳
- 简单的jquery不起作用,并返回错误
- 在回调返回错误中带有点的 JSONP
- 在页面发布到服务器并返回错误后保留 javascript 更改
- web2py服务器返回错误,但已提交查询
- Javascript错误-左移位返回错误的输出