使用json.parse的字符无效



使用Asp.Net Core,在提交ajax表单后,我将从控制器返回一个IActionResult,其中包含我的MVC模型对象(Comment)的Json结果:

[HttpPost]
public IActionResult AjCreate([FromForm] Comment comment)
{
// do whatever to save to the database
//....
// return a json object
return Json(comment);
//return Ok(comment);
}

提交表单和处理响应的脚本如下:

$(function () {
$('#submitButton').on('click', function (e) {
e.preventDefault();
var formData = $('#myForm').serialize();
console.log('before ajax: ', formData);
$.ajax({
type: 'POST',
url: 'AjCreate',
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
data: formData,
success: function (response) {
var comment = JSON.parse(response);     //<<<Invalid character error here
console.log('Success: ' + comment.commentText);
},
error: function (xhr, ajaxOptions, thrownError) {
alert('error is:' + thrownError);
}
});
});
});

我希望使用JSON.parse能够访问返回对象的"属性",但JSON.pase行导致无效字符错误。响应主体标头显示json响应为{"id":2,"commentText":"comment 2 text","commentDate":"2111-01-01T00:00:00","userName":"Will","parentCommentId":1}。如果我使用JSON.stringify,我可以得到它,但我如何访问对象属性,例如comment.id

有人能建议我做错了什么吗?最后,我想根据返回的值向页面添加元素。

来自jQuery文档,在dataType

"json":将响应求值为json并返回一个JavaScript对象。

您已经有了一个对象,只需使用它:

success: function (response) {
console.log('Success: ' + response.commentText);
},                      //  ^^^^^^^^

相关内容

  • 没有找到相关文章

最新更新