【问题标题】:PHP Ajax response parsererrorPHP Ajax 响应解析器错误
【发布时间】:2015-10-25 00:54:25
【问题描述】:

我正在尝试进行 ajax 调用并返回响应。问题是我似乎无法弄清楚如何得到回应。这是我的javascript代码:

$.ajax({
    type: "POST", 
    url: "inc.test.php", 
    data: {list:postData},
    dataType: "json",
    success: function(response){
        if(response.success == 1){
            alert (response.testdata);
            }},
    error: function(jqXHR, textStatus, errorThrown){
        console.log(errorThrown); 
        console.log(textStatus);
        }
    });

这是我的 inc.test.php 代码将 json 数据发回:

if($result)
    {
    $arr=array(
        "success" => 1,
        "testdata" => 'Testing');
    echo json_encode($arr);
    }

在我的控制台/响应中,我看到了这个:

{"success":1,"testdata":"Testing"}

我已经阅读了大量文章,但似乎无法弄清楚发生了什么。请帮忙!

【问题讨论】:

  • 您是遇到错误还是只是想处理响应?
  • 检查开发工具网络中的实际请求响应正文,看看是否有除json之外的其他字符返回

标签: javascript php jquery ajax


【解决方案1】:

success: function(response) {
  var resp = JSON.parse(response);
  // rest of code ...
  }

可能是因为你已经解析了你的代码?你没有具体说明问题是什么。

【讨论】:

    【解决方案2】:

    在发送数据之前,您是否尝试过使用 PHP 的 trim() 函数?我认为当你 json_encode 或使用 trim() 时你有一个额外的空间。

    if($result)
        {
        $arr=array(
            "success" => 1, 
                        ^
            "testdata" => 'Testing');
                         ^
        echo json_encode($arr);
        }
    

    【讨论】:

    • 没关系,这是一个数组声明,因此您可以在其中使用制表符和空格来格式化代码以提高可读性。
    【解决方案3】:

    如果这是在 wordpress 中,你可能忘记了

    wp_die(); 
    

    在ajax请求调用的php函数的末尾

    【讨论】:

      猜你喜欢
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 2023-03-20
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多