3

我有一个无法调试的 JSON 解析错误。下面的代码:

$(document).on('submit', '#confirmreset', function(event) {
    event.preventDefault();

    var action_url = $(this).attr("action");
    alert_box_register("Resetting password...");
    console.log(action_url);
    var postData = $(this).serializeArray();
    console.log(postData);

    $.post(action_url, postData, function(data) {
        console.log(data);
        var obj = $.parseJSON(data);

        alert_box_register(obj.message);
    });
});

和 JSON:

{
    "status": "success",
    "message": "A temporary password has been emailed to you."
}

在 Firefox 中,错误是“SyntaxError: JSON.parse: unexpected character”,在 Chrome 中是“Uncaught SyntaxError: Unexpected token C”

有任何想法吗?

*编辑:这适用于我的本地主机设置。*

4

3 回答 3

16

如果服务器正在发送有效的 JSON,则不需要调用$.parseJSON,因为 jQuery 会在检索响应时自动解析它。我不知道确切的标准,但如果你设置Content-type: application/json标题,它肯定会。

于 2013-11-06T22:46:02.793 回答
1

此错误可能是由于对字符串使用单引号 ( ') 而不是双引号 ( ) 引起的。"

JSON 规范要求字符串使用双引号。

也可以看看:

https://stackoverflow.com/a/14355724/1461850

于 2020-01-15T10:13:25.893 回答
0
  1. 只放这些=>

    dataType: 'text', // 期望从 PHP 脚本返回什么,如果有的话 cache: false, contentType: false, processData: false,

于 2021-04-07T10:15:20.663 回答