2015-03-03 83 views
0

我在我的js文件下面的代码:的ReferenceError:_spPageContextInfo没有定义

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没有定义 我不知道我在哪里错误,以及如何删除此错误

+0

'_spPageContextInfo'是不是在你的代码中声明,试图把'的console.log(_spPageContextInfo)'也将给予同样的错误 – 2015-03-03 09:52:48

+0

那么我该怎么办解决这个问题? – Ruchi 2015-03-03 10:16:59

+0

提供它的价值,我怎么知道,'_spPageContextInfo' – 2015-03-03 10:25:46

回答

3

该代码是正确的。但不要在加载页面之前尝试运行它。 _spPageContextInfo在body部分的某处定义。所以它不在头部。

试着在DOM准备好的时候运行你的代码,或者把它放在页面的末尾。

3

自一个SharePoint代码尝试运行此:

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

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

要知道,SharePoints _spPageContextInfo正在使用它会自动前初始化

+1

缺少引号.. .SP.SOD.executeFunc(“SP.js”,“ClientContext”,functionName) – Rothrock 2017-05-16 17:34:41

+0

是的。这很好!谢啦! – 2017-06-01 06:43:11