发生错误:语法错误:JSON.parse:意外字符


An error has occurred: SyntaxError: JSON.parse: unexpected character

我正在尝试使用 JQuery/JSON 更新记录,但我看到此错误:

发生错误:

[对象对象]

解析器错误

语法错误:JSON.parse:意外字符

我的JS:

jQuery('#commentForm').live('submit', function (event) {
event.preventDefault()
    
jQuery.ajax(edit_url, {
    data: jQuery(this).serialize(),
    dataType: 'json',
    type: 'POST',
    success: function (data) {
        if (data.error === 'OK') {
            alert('ok c good')
        } else {
            alert('hi' + data.error)
        }
    },
    error: function(x,y,z){
        alert('An error has occurred:'n' + x + ''n' + y + ''n' + z);
    }
})
    
return false;
})

还有我的php:

$ret = array(
    'error'             =>  'OK',
);
$update =
    "UPDATE crm_set_users SET ".
        "crm_set_users_civilite = '".mysql_real_escape_string($crm_set_users_civilite)."',".
        "crm_set_users_nom = '".mysql_real_escape_string($crm_set_users_nom)."',".
        "crm_set_users_prenom = '".mysql_real_escape_string($crm_set_users_prenom)."',".
        "crm_set_users_email = '".mysql_real_escape_string($crm_set_users_email)."', ".
        "crm_set_users_telephone = '".mysql_real_escape_string($crm_set_users_telephone)."', ".
        "crm_set_users_portable = '".mysql_real_escape_string($crm_set_users_portable)."'";
        
if($crm_set_users_photo != ""){
    $update .=", crm_set_users_photo = '".mysql_real_escape_string($crm_set_users_photo)."'";
}   
    
$update .=
    "WHERE ".
        "crm_set_users_id = '".mysql_real_escape_string($user_id)."'";


echo json_encode($ret);
exit;

如果我的 php 是 :

$ret = array(
    'error'             =>  'OK',
);
echo json_encode($ret);
exit;

然后它工作...

谢谢你的帮助!

可能您的 PHP 会抛出一些错误或警告,这使得返回的文档不是有效的 JSON 字符串。使用像FireBug这样的调试器来查看PHP脚本返回的实际结果。

遵循 PHP 文档进行mysql_real_escape_string(链接)如果没有可用的活动 MySQL 连接,它将抛出错误。也许那是你的问题。

问题一定是更新记录的 php 失败,因此 json 没有输出。

我认为您需要在WHERE之前添加一个空格

$update .=
    " WHERE ".

在字符串的其余部分之后给它一些空间