javascript – echo’d PHP编码通过AJAX调用的JSON返回到底是什么?

前端之家收集整理的这篇文章主要介绍了javascript – echo’d PHP编码通过AJAX调用的JSON返回到底是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想我在这里遗漏了一些东西:

使用AjAX我从数据库获取一些数据并以JSON格式发回
    $jsondata = array();

while ($Row = MysqL_fetch_array($params))
{

    $jsondata[]= array('cat_id'=>$Row["cat_id"],'category'=>$Row["category"],'category_desc'=>$Row["category_desc"],'cat_bgd_col'=>$Row["cat_bgd_col"]);
};

echo("{\"Categories\": ".json_encode($jsondata)."};");

到目前为止我没有问题.

在cleint方面,我收到上面的内容

ajaxRequest.responseText

如果我这样做

var categoriesObject = ajaxRequest.responseText; 
alert(categoriesObject);

我看到了我期望看到的内容,即警报中的整个数组.

一切都出错的是尝试访问响应.我得到的错误是“categoriesObject”不是一个对象 – 如果不是它是什么?我的错误是我甚至无法像这样访问它:

document.write(categoriesObject.Categories[0].category);

那么我做错了什么?

最佳答案
>您不应手动创建JSON.使用:

echo json_encode(array('Categories' => $jsondata));

要不就

echo json_encode($jsondata);

我没有看到添加类别的理由.
>您必须使用JSON.parse(在大多数浏览器中提供,但也可用作script)在客户端解码JSON:

var data = JSON.parse(ajaxRequest.responseText);

>如果您想要非常正确,请添加

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

到您的PHP脚本.

原文链接:https://www.f2er.com/ajax/429613.html

猜你在找的Ajax相关文章