json - 无法正确读取处理 Ajax 调用的 Cake PHP Controller 函数发送的 json 编码的成功/失败状态

标签 json cakephp jquery response

我的问题有点类似于cakephp, jquery, .ajax(), dataType: json ,但我的观察略有不同。

我正在开发一个 Cake PHP 项目。考虑 opstools 模块的 group_assoc 子模块。因此,opstools_controller.php 中有一个函数 group_assoc(),它由 ajax 调用调用来更新组关联。

我的ajax帖子是这样的 -

$.post( url,
function(data) 
{
   if(data)
   {

      alert(data.success);  //alerts -> undefined
      alert(data);          //alerts -> {"success":true}  or {"success":false}

      if(data.success)
      {
         //does not work
      }
  }

}, "json");

opstools_controller.php 里面我有 -

function group_assoc()
{
     ...
     ...
     //some code
     ...
     ...
     $success //contains true or false - depending on previous logic

     echo json_encode(array("success" => $success));
}

因此,在 Ajax 响应处理函数内(在 ajax 发布部分),我得到一个类似 {"success":false} 的字符串。

如何解决这个问题。我记得使用类似的 Ajax 发布和响应使用 json_encode,这在之前使用 Core PHP 的项目(没有 Cake PHP)中工作得非常好。这里可能有什么问题?有什么指点吗?

更新
我需要显式设置任何 header 吗?为什么需要这样?在哪里检查是否设置我们返回文本。我尝试将 header("HTTP/1.1 200 OK"); 放在回显部分之前,就像现有代码中所做的那样 - 类似的 Ajax 处理函数。

此外,我在模块中设置了 $this->autoRender = false;

最佳答案

确保您发送的 header 类型正确

header('Content-type: application/json');

或者您可以使用 jQuery 的 getJSON()处理 JSON 的方法

关于json - 无法正确读取处理 Ajax 调用的 Cake PHP Controller 函数发送的 json 编码的成功/失败状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6464248/

相关文章:

python - 如何在django中读取json数据?

ios - 支付你的钱 nsurl 错误空字符串

javascript - 无法访问 javascript 返回中的 json 对象

php - 从 ssl 移动到非 ssl 时 session 不保存

php - 从MySQL服务器检索一定时间间隔内的数据

javascript - 显示内部 html 需要覆盖/灯箱

json - 尝试仅从Windows将大容量数据加载到ElasticSearch中的JSON编码问题

php - 在 Cakephp 网站中集成 Wordpress 博客的问题

javascript - JQuery:如何叠加许多异步启动的移动动画?

jquery - Jvectormap - 设置每个区域的悬停颜色?