【问题标题】:SyntaxError: JSON.parse: unexpected end of dataSyntaxError: JSON.parse: 数据意外结束
【发布时间】:2014-05-13 09:20:35
【问题描述】:

我尝试使用 ajax 将数据添加到数据库。我准备数据:

$(".panel").on('click','.buttons_save',function() {
    groupIdD = this.id;
    groupNameD=$("#groupName").val();
    groupDescriptionD=$("#groupDescription").val();
    paramGroupD=$("#paramGroup").val();
    paramOrderD=$("#paramOrder").val();

    $.ajax({
        dataType: "json",
        type: "POST",
        url: ajaxSetGroupParams,
        data: { 
            groupId: groupIdD,
            paramGroup: groupNameD,
            groupName: groupDescriptionD,
            groupDescription: paramGroupD,
            paramOrder: paramOrderD
        }
    })

    .done(function() {
        alert( "success" );
    })
    .fail(function(XMLHttpRequest, textStatus, errorThrown) {
        console.log(XMLHttpRequest);
        console.log(textStatus);
        console.log(errorThrown);
    })


});

然后我将此数据添加到数据库中(一切正常,数据已添加到数据库中)。 $polaczenie_z_baza=$_SESSION['db']['connectObjs']['system'];

$id_group=$_REQUEST['groupId'];
$paramGroup=$_REQUEST['paramGroup'];
$groupName=$_REQUEST['groupName'];
$groupDescription=$_REQUEST['groupDescription'];
if (isset($_REQUEST['paramOrder'])) {
    $paramOrder=$_REQUEST['paramOrder'];
}
else {
    $paramOrder=0;
}

$qUpdateData    = '
UPDATE
`grupy_parametrow_konfiguracyjnych`
SET
`id_grupa_nadrzedna` ='.$paramGroup.',
`nazwa_grupy` = '.$groupName.',
`opis_grupy` = '.$groupDescription.',
`kolejnosc` ='.$paramOrder.'
WHERE
`id_grupa_parametrow` = '.$id_group; 

$result = stdIUDQuery( $qUpdateData, $polaczenie_z_baza);

但我总是有失败信息:

parsererror
SyntaxError: JSON.parse: unexpected end of data

return window.JSON.parse( data );

【问题讨论】:

  • 显示你的 json 数据结构
  • 我希望这只是一个小例子,如果不是,你应该注意 SQL 注入技术。
  • 这是修改后的例子。我有数据验证和准备好的报表。

标签: jquery json parsing


【解决方案1】:

3个想法也可以调试错误。

火狐

  1. 在记事本中将响应保存为idea.json
  2. 在 Firefox 中打开
  3. 它会告诉你 json 是否好。

B console.log(variable.constructor)

用console.log(variable_name.constructor)检查是字符串还是json;

C 检查正确的行

检查所有 JSON.parse 行,我的问题是 20 分钟检查错误的行。

【讨论】:

    【解决方案2】:

    这将发生,因为您的服务器没有返回 JSON,但您告诉 jQuery 它是。由于您没有在 done 处理程序中使用来自服务器的响应内容,因此您只需从 $.ajax 调用中删除 dataType: "json",

    【讨论】:

    • 非常感谢!现在一切正常。
    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多