我是JS的完整新手。尝试使用SharePoint REST API在页脚中显示链接列表。无论我做什么,都要继续犯这个错误。这是LoadFooterLinks(results.d.results);
function GetFooterLinks() {
var url = _spPageContextInfo.siteAbsoluteUrl + "/_api/lists/getbytitle('Footer Links')/items/?$orderby=Display_x0020_on_x0020_Homepage";
$.ajax({
url: url,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function (results) {
LoadFooterLinks(results.d.results);
},
error: function (error) {
console.log("Error in getting List: " + listName);
}
});
}
答案 0 :(得分:0)
一些事情:
Exception
?Exception
是什么? LoadFooterLinks()
功能无关?try-catch
vs。 "error"
回调中输出字符串 变量 任意命名 failure
$.ajax
对象 console.err()
console.err()
,而不是console.log
Null
是对象,而不是数据类型或原语,就像其他的一样JavaScript的。例如,
<小时/>
function GetFooterLinks() {
var url = _spPageContextInfo.siteAbsoluteUrl +
"/_api/lists/getbytitle('Footer Links')/items/?
$orderby=Display_x0020_on_x0020_Homepage"
;
$.ajax({
url: url,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function (results) {
if (!results) { // should handle null and empty strings
try{
LoadFooterLinks(results.d.results);
}
catch (e){ // catch any JavaScript runtime exception (error)
console.log(e); // print the error to the console
// (hit F12 in most browsers to see
// the console BEFORE you refresh
// the page to run your code)
}
}
else {
var msg = "The 'results' variable is ";
var varType = typeof(results);
if (varType == "object") {
msg += "NULL";
}
else {
msg += varType;
}
}
},
error: function (error) {
// this 'error' variable can be named
// anything you'd like and is a string
// description of the AJAX error.
// This description comes from $.ajax -
// which is part of jQuery (a JS library).
// This "error" is not a native JS
// exception; therefore, you wouldn't
// use a TRY-CATCH. Also, since it's
// only a string, if you want to show it
// as an error in the console, you should
// use `console.err`, not `console.log`.
console.err("Error in getting List: (0)", error);
}
});
}
答案 1 :(得分:0)
你基本上做的是向&#34; / _ api / lists / getbytitle&#34;发出请求。方法。 当该方法返回响应时,它将作为名为&#34; results&#34;的对象执行此操作,正如您在&#34; success&#34;中所看到的那样。回调。
之后您正在阅读的是一个名为&#34; d&#34;并且在&#34; d&#34;你试图获得名为&#34;结果&#34;。
的财产价值错误的含义是&#34; d&#34;未定义因此无法检索&#34;结果&#34;来自&#34; d&#34;。
我建议您查看对象内部的内容&#34;结果&#34;成功回调。
答案 2 :(得分:0)
对于SharePoint API结果,您需要解析JSON响应以将其转换为Javascript对象。我已经修改了你的代码,使其在这种情况下工作。
function GetFooterLinks() {
var url = _spPageContextInfo.siteAbsoluteUrl + "/_api/lists/getbytitle('Footer Links')/items/?$orderby=Display_x0020_on_x0020_Homepage";
$.ajax({
url: url,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function (response) {
var svcData = JSON.parse(response.data).d.results;
LoadFooterLinks(svcData);
},
error: function (error) {
console.log("Error in getting List: " + listName);
}
});
}