首页 > 解决方案 > json之前的Ajax响应返回和空行和html注释标记

问题描述

我正在发送一个 ajax 请求并期望得到一个 json 响应。但在我的回复中,我有一个空行和 html 注释标签 ( <!-- -->)。如何删除这个不需要的空行和字符?

PS:当我在线托管网站时会发生这种情况。

$.ajax({
    url: "edit_row.php",
    method: "post",
    data: {id:id},
    success: function(data){
        alert(data);
    }
});

php:

<?php
    $id = $_POST['id'];
    $data = array();
    -----
    sql query
    ------
    while($query = mysqli_fetch_assoc($sql)){
        $data[] = $query;
    }
    print json_encode($data);
>?

我期望输出是这样的:

[{"id":"1", "asd":"dsa",...}]

但我得到:


<!-- -->[{"id":"1", "asd":"dsa",...}]

标签: phpjqueryjsonajax

解决方案


我不确定您的问题是什么,但重要的是始终将您的php/code脚本包装在try 和 catch 语句中以获取 php 错误和警告(如果有的话),例如

<?php

try {
  $id = $_POST['id'];
  $data = array();
  -----
  sql query
  ------
  while($query = mysqli_fetch_assoc($sql)){
      $data[] = $query;
  }
  print_r(json_encode($data));
}

catch(Exception $e) {
  echo 'Message: ' .$e->getMessage();
}
?>

我也将你的 php 结束标记从 更改>??>虽然我不确定这是否导致了问题。还更改printprint_r,这对于数组和对象的可读性更好。


推荐阅读