javascript – jQuery AJAX响应JSON获取子节点

我试图从
AJAX调用中获取response
JSON,并将一个元素提取到变量formDigestValue.我尝试使用JSON.parse(),$.parseJSON()和其他一些方法尝试返回响应的十几种方法,但有两个主要问题我似乎无法弄清楚.我检查if(data.lenght> 0){做某事},response.length,responseJSON,jqXHR,XHR,我似乎无法找到保存最终发送到成功函数的数据的变量.我试过把ajax调用设置为变量(var y = $.ajax()…)并以这种方式操作它.

我只是继续阅读不同的文章并尝试不同的方式,但似乎没有什么可以完全正确,它似乎相当简单,但我觉得我只是错过了一些简单的事情.

    $(document).ready(function () {

        var siteURL = "xxx";
        var formDigestValue = "";

        jQuery.ajax({
                url: siteURL + "/_api/contextinfo",
                type: "POST",
                headers: { 
                    "accept": "application/json;odata=verbose",
                    "content-type": "application/json;odata=verbose",
                },
                success: function(){
                    contextHeaders = $.parseJSON(responseJSON);
                    formDigestValue = contextHeaders.FormDigestValue;
                }
            });
...

任何建议将不胜感激.作为参考,返回的JSON如下所示.我想弄清楚我是否还需要任何额外的东西来获取子节点,因为它看起来像是埋回了一点(我用缩进打破了它只是为了显示深度):

{
    "d":
    {
        "GetContextWebInformation":
        {
            "__metadata":
            {
                "type":"SP.ContextWebInformation"
            },
            "FormDigestTimeoutSeconds":1800,
            "FormDigestValue":"0xADC9732A0652EF933F4dfg1EF9C1B75131456123492CFFB91233261B46F58FD40FF980C475529B663CC654629826ECBACA761558591785D7BA7F3B8C62E2CB72,26 Jun 2015 21:20:10 -0000",
            "LibraryVersion":"15.0.4631.1000",
            "SiteFullUrl":"http://example.com/",
            "SupportedSchemaVersions":
            {
                "__metadata":
                {
                    "type":"Collection(Edm.String)"
                },
                "results":["14.0.0.0","15.0.0.0"]
            },
            "WebFullUrl":"http://www.example.cm"
        }
    }
}

编辑6月27日

好吧,我认为在访问子节点的注释和其余的将参数传递给成功函数之间,我差点就去了.我的主要是,我似乎无法将其作为论据传递.我最初试图说,但不要以为我正确地写了解释.我试过了:

成功:功能(responseJSON)……

以及

成功:功能(数据)……

但数据似乎从未真正进入函数,它的空值.我知道json返回了,但是有问题将它传递给成功函数

这是运行时的firebug:

最佳答案 尝试添加带有json值的dataType选项,并且不要忘记回调成功函数至少采用一个参数,即服务器返回的数据.

jQuery.ajax({
            url: siteURL + "/_api/contextinfo",
            type: "POST",
            dataType: 'json',
            headers: { 
                "accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
            },
            success: function(data){
                console.log(data);
            }
        });
点赞