ReferenceError:未定义_spPageContextInfo

时间:2015-03-03 09:31:31

标签: javascript ajax angularjs sharepoint-2013

我的js文件中有以下代码:

var configNews = {
    url:_spPageContextInfo.webAbsoluteUrl,
    newsLibrary: 'DEMONews',
    listId: ''
};

// Getting the ListID
$.ajax({
    url: configNews.url + "/_api/web/lists/getbytitle('" + configNews.newsLibrary + "')?$select=Id",
    method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
        // Returning the results
        configNews.listId = data.d.Id;
    },
    error: function (data) {
        alert(data);
    }
});

但是我收到以下错误: ReferenceError:未定义_spPageContextInfo 我不知道我错在哪里以及如何删除此错误

2 个答案:

答案 0 :(得分:4)

代码是正确的。但是在页面加载之前不要尝试运行它。 _spPageContextInfo在body部分的某处定义。因此,它在头部没有。

尝试在DOM上运行您的代码,或者将其放在页面的末尾。

答案 1 :(得分:4)

因为它的sharepoint代码尝试运行它:

SP.SOD.executeFunc("SP.js","ClientContext",functionName)

这可确保加载包含指定函数(ClientContext)的指定文件(sp.js),然后运行指定的回调函数名称。

在自动初始化之前意识到SharePoints _spPageContextInfo正在被使用