【问题标题】:How to parse array with ajax PHP如何使用 ajax PHP 解析数组
【发布时间】:2021-12-29 03:37:13
【问题描述】:

我正在使用 php 处理 Ajax,我从“Controller”得到响应 json 响应,但我无法解析响应(空警报) 这是我的代码

$.ajax({
            type: "post",
            url:'<?php echo base_url();?>Main/GetFollowingCoinUsers',
            data: {coin_id:coin_id},
            success: function (datan) {
            var data2 = JSON.parse(datan);
            alert(data2)
            }
        });

    

这是我在控制器中的代码

function GetFollowingCoinUsers()
    {
        $CoinId=$_POST['coin_id'];
        $result = $this->M_main->GetAllCoinFollower($CoinId);
        $UserId=array();
        foreach($result as $res)
        {
            $UserId[]=$res['UserId'];
        }
        echo json_encode($UserId);
    }

    

我哪里错了?

【问题讨论】:

  • 首先在网络选项卡中检查数据是否来自服务器。

标签: php ajax


【解决方案1】:

通常,可能有很多可能的原因。

一般来说,一些原因可能是:

  1. 没有正确提及 ajax URL。
  2. 服务器出现错误,因此无法将响应解析为 JSON 对象。 (使用Developer Tool &gt; console 或/和Developer Tool &gt; network 更深入地检查问题。
  3. 由于跨域请求标头(CORS 策略),请求被阻止,而您没有注意到它,因为您没有检查开发者工具下的网络部分。

我建议使用console.log(datan) 解决问题,并查看它是什么数据类型。

【讨论】:

    【解决方案2】:

    控制器似乎没问题,只需更新您的 ajax 请求并添加控制器期望的数据类型

    $.ajax({
            type: "post",
            dataType: "json",
            url:'<?php echo base_url();?>Main/GetFollowingCoinUsers',
            data: {coin_id:coin_id},
            success: function (datan) {
            var data2 = JSON.parse(datan);
            alert(data2)
            }
        });
    

    【讨论】:

      【解决方案3】:

      在 api 中使用“echo”不是最佳做法。你可以使用'return'代替echo。 在 foreach 循环中赋值时,使用 array_push()

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2012-06-01
      相关资源
      最近更新 更多