我试图从
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);
}
});