Javascript Ajax可以';t将数据作为json发送到php时不会出错

Javascript Ajax可以';t将数据作为json发送到php时不会出错,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,当我想以数据类型json发送数据时,它会响应以下错误: SyntaxError:JSON中位置0处出现意外标记'myValue']) $.ajax({ url: "test.php", method: "POST", dataType: "json", contentType: 'application/json', data:JSON.stringify(ob), success: func

当我想以数据类型json发送数据时,它会响应以下错误: SyntaxError:JSON中位置0处出现意外标记<

当我尝试以数据类型文本的形式发送数据时,它成功地将数据发送到php,但我的php没有响应

ajax/js作为数据类型json:

let form = $("#form");

$("#form").on("submit", function(e) {
                          
  e.preventDefault();
                          

  $.ajax({
    url: "test.php",
    method: "POST",
    dataType: "json",
    data: {
       test: 1
    },
  success: function (r) {
    console.log("!!!");
  },
  error: function(jqXHR, textStatus, errorMessage) {
    console.log(errorMessage);
  }
  });

});
ajax/js作为数据类型正常:

let form = $("#form");

$("#form").on("submit", function(e) {
                          
   e.preventDefault();
                     
   $.ajax({
      url: "test.php",
      method: "POST",
      data: form.serialize(),
      success: function (r) {
        console.log("!!!");
      },
      error: function(jqXHR, textStatus, errorMessage) {
        console.log(errorMessage);
      }
   });

});
php代码:

if(isset($_POST["test"])){
   echo "<script>console.log('works');</script>";
}
if(isset($\u POST[“test”])){
echo“console.log('works');”;
}
试试这个

var ob = {
       test: 1
    };

Well
console.log('works')
不是有效的JSON。我删除了这个echo脚本。错误是相同的,但现在是“位置2”。那么您的脚本必须仍然用无效的JSON响应。首先,使用浏览器开发工具(网络面板)检查实际响应是什么。该死,为什么内容类型是:text/html。。。有解决办法吗?或者这不是问题所在?
dataType
设置响应对象的数据类型,因此ajax调用需要从PHP返回一个json对象,但需要回显一些
字符串。尝试类似于echo json_encode(['myVar'=>'myValue'])
$.ajax({
    url: "test.php",
    method: "POST",
    dataType: "json",
    contentType: 'application/json',
    data:JSON.stringify(ob),
  success: function (r) {
    console.log("!!!");
  },
  error: function(jqXHR, textStatus, errorMessage) {
    console.log(errorMessage);
  }
  });