gpt4 book ai didi

javascript - 使用 json.parse 的字符无效

转载 作者:行者123 更新时间:2023-11-30 11:42:13 24 4
gpt4 key购买 nike

使用 Asp.Net Core,在提交 ajax 表单后,我从 Controller 返回一个 IActionResult,其中包含我的 MVC 模型对象的 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.parse 行导致无效字符错误。响应正文 header 显示 json 响应为 {"id":2,"commentText":"comment 2 text","commentDate":"2111-01-01T00:00:00","userName": “将”,“parentCommentId”:1}。如果我改用 JSON.stringify 就可以得到这个,但是我该如何访问对象属性,例如comment.id?

任何人都可以建议我做错了什么或解决这个问题的方法吗?最终,我想根据返回值向页面添加元素。

最佳答案

来自 jQuery documentation , 在 dataType

"json": Evaluates the response as JSON and returns a JavaScript object.

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

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

关于javascript - 使用 json.parse 的字符无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42215075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com