【问题标题】:Why am I getting this invalid parse?为什么我得到这个无效的解析?
【发布时间】:2021-05-02 09:01:42
【问题描述】:

我有一个 Ajax 函数来通过 php 加载所有列名及其值,如下所示:

PHP 端:

$res = $db->query($stmt);
$rsltz= array();
while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
    foreach ($row as $colonne => $valeur) {
      $rsltz[$colonne] = isset($valeur) ? $valeur : ""; 
    }
}
header('Content-type: application/json');
echo (json_encode($rsltz));

AJAX 功能:

function jet(a,b,c){
$.ajax({
        type: 'POST',   
        cache: false,           
        url: 'builder.php',
        data:  { typ:a, lg:b ,menu:c},
         success: function(result) { 
             if(typeof(result) === "string") {
                $('#par').after(result);
              } else {
                //JSON hier comes a loop to display key=>val
                var pars = JSON.parse(result); 
             $('#par').after(pars.datasrc);
              }          
        },
        error: function (jqXHR, textStatus, errorThrown) {
        alert(jqXHR+'\n'+textStatus+'\n'+ errorThrown);
        }
});
}

我有这个错误:

这里是 json.encoded 结果:

{"id":"510","menu":"regis","taketo":"regis1","auth":"ALL"}

我非常感谢任何帮助☺。

【问题讨论】:

  • 您在这里使用旧的 Internet Explorer 作为测试浏览器吗?哎呀 :-) 我建议您使用更现代的浏览器,然后检查浏览器控制台的内容。还要在网络面板中检查对请求的实际响应。
  • 是的,它是一个旧的 IE 浏览器。有没有办法让它发生正确的事情?
  • 让事情发生对吧?发展?是的,不要使用旧的 IE。 AJAX 请求/JSON 响应?是的,首先要找出错误实际上是什么。怎么做,你已经得到了提示。
  • 不,我没有这么说。但是旧 IE 中的调试工具非常糟糕,并且在提供适当开发工具的当前浏览器中找出这里实际出了什么问题会容易得多。
  • 检查这个 jquery 版本是否与您的浏览器兼容。您可能需要使用较旧的 jquery 版本或使用纯 javascript。

标签: php json ajax sqlite


【解决方案1】:

我们不必重新解析已经解析的内容!响应(Ajax 函数中的结果)已被解析。所以就照原样使用吧:

var pars = JSON.parse(result); 
$('#par').after(pars.datasrc);

必须替换为

$('#par').after(result.datasrc);

谢谢你们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2013-03-20
    • 1970-01-01
    • 2014-08-19
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多