Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON调用返回';未定义';_Javascript_Jquery_Json - Fatal编程技术网

Javascript JSON调用返回';未定义';

Javascript JSON调用返回';未定义';,javascript,jquery,json,Javascript,Jquery,Json,我对使用JSON比较陌生,遇到了一个我似乎无法解决的问题。我已经设置了一个通用处理程序(如下所述),以及一个带有JSON调用的页面,以从处理程序获取响应并呈现它 带有JSON调用的页面是: <script type="text/javascript"> $(document).ready(function () { triggerCall(); function triggerCall() { $.ajaxSetup

我对使用JSON比较陌生,遇到了一个我似乎无法解决的问题。我已经设置了一个通用处理程序(如下所述),以及一个带有JSON调用的页面,以从处理程序获取响应并呈现它

带有JSON调用的页面是:

<script type="text/javascript">
    $(document).ready(function () {

        triggerCall();

        function triggerCall() {
            $.ajaxSetup({
                type: 'POST',
                headers: { "cache-control": "no-cache" }
            });

            $.ajax
              (
                {
                    type: "POST",
                    url: "Services/DepartmentListHandler.ashx",
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    async: false,
                    cache: false,
                    success: function (data) {
                        alert(data.msg);
                        displayDirectory(data.msg);
                    },
                    error: function (x, e) {
                        alert("The call to the server side failed. " + x.responseText);
                    }
                }
              );
        }

        function displayDirectory(dirlist) {
            var tablestring = '<table class="centered-table"><tr><td colspan="2">';
            tablestring = tablestring + "<tr><td><u>DeptCode</u></td><td><u>HeaderText</u></td></tr>";

            for (var i = 0, len = dirlist.length; i < len; ++i) {
                tablestring = tablestring + "<tr>";
                tablestring = tablestring + "   <td>" + dirlist[i].DeptCode + "</td>";
                tablestring = tablestring + "   <td>" + dirlist[i].HeaderText + "</td>";
                tablestring = tablestring + "</tr>";
            }

            tablestring = tablestring + "</table>";
            $('#divDirectoryList').html(tablestring);
        }

    });

    </script>


<div id="divDirectoryList"></div>
所有可能发生的情况是,“success”分支中的警报每次都返回“undefined”,而该表根本不呈现

有人能看出我哪里做错了吗


非常感谢

我认为您在代码中序列化的json数据格式不正确。显示为“data.msg”的json数据必须作为

{
    msg: 'some message',
    data:'some data'
};

实际上,在客户端,您将获得对象的[object]集合,该对象包含您的对象列表

印刷品 console.log('data',data);看看火狐

您只需获得

data[0].msg;
data[0].id;
或者您可以使用jquery迭代java脚本对象,然后得到如下结果

data.msg;
data.id

您可以发布生成的JSON而不是生成JSON的代码吗?您可以发布生成JSON的.net代码而不是生成JSON的.net代码的示例。您可以使用
console.log(数据)
检查
Handler
Put
console.dir(数据)中的内容吗在成功函数内(而不是丑陋的警报),并检查控制台以查看数据对象是什么。感谢回复!日志:[对象]是日志中显示的内容
data.msg;
data.id