我正在尝试从AJAX调用中获取responseJSON并将一个元素提取到变量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"
}
}
}
好吧,我想在访问子节点的注释和其余的将参数传递给成功函数之间,我几乎可以去了。我的主要是,我似乎无法将其作为论据传递。我最初试图说,但不要以为我正确地写了解释。我试过了:
Success: function(responseJSON)...
以及
Success: function(data)...
但数据似乎从未真正进入函数,它的空值。我知道json返回了,但是将问题传递给成功函数
以下是firebug的运行情况:
答案 0 :(得分:2)
尝试添加带有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);
}
});
答案 1 :(得分:0)
从我的iPhone发帖,所以,这很难。从第一眼看,您没有成功捕获返回的结果。请尝试以下方法。
成功:function(responseJSON){ contextHeaders = $ .parseJSON(responseJSON);
答案 2 :(得分:0)
如果json的那个块是你$.parseJSON(responseJSON)
返回的那个,那么你是对的,你只需要深入挖掘一下:
contextHeaders = $.parseJSON(responseJSON);
formDigestValue = contextHeaders.d.GetContextWebInformation.FormDigestValue;
希望有所帮助:)