我想使用javascript将新项目添加到我的sharepoint列表中。我直接使用来自MSDN的代码,但它不起作用。我认为问题出在我声明的siteUrl上,因为当我像这样设置警报时:
var siteUrl = 'http://units.mil.intra/sites/DGHR/h/default.aspx';
function createListItem() {
alert('in function ');
var clientContext = new SP.ClientContext(siteUrl);
alert('before oList');
var oList = clientContext.get_web().get_lists().getByTitle('TestPostModification');
alert('after oList');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'Item from de Hrnode!');
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert('Item created: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
我收到第一个警报,但我没有收到alert('before oList');
,所以我认为存在以下问题:
var clientContext = new SP.ClientContext(siteUrl);
有人能帮帮我吗?
ps: siteUrl在我们的内部网站上,所以你不能从你所在的地方访问它。
发布于 2013-10-18 16:29:13
我认为这是因为siteURL
不能包含页面。所以它应该是http://units.mil.intra/sites/DGHR/h/
(它意味着你网站的根目录)。
小贴士:你可以使用web控制台来调试你的代码与Firefox或Chrome,或者你可以安装一个插件,如Firebug for Firefox。不需要使用alert()
,console.log()
提供了更多有用的信息。
另外,原生方法很难使用,也不是很“漂亮”。如果使用jQuery对您来说不是问题,那么我建议您使用第三个库,如SPServices或SharepointPlus。例如,使用SharepointPlus时,您的代码将变为:
// if your code runs somewhere under this website, then you don't need to provide the URL
var siteUrl = 'http://units.mil.intra/sites/DGHR/h/';
$SP().list("TestPostModification", siteUrl).add({Title:"Item from de Hrnode!"}, {
success:function(items) {
if (items.length === 1) alert("Item created: "+items[0].ID)
},
error:function(items) {
if (items.length > 0) alert("Request failed: "+items[0].errorMessage)
}
})
发布于 2018-08-24 03:30:48
根据我所看到的,您应该将其用作siteUrl siteUrl = 'http://units.mil.intra/sites/DGHR/h/';
您使用的siteUrl会将其定向到一个不需要的网页。该列表位于sharepoint站点中,并且您已经具有代码中引用的列表的名称// var oList = clientContext.get_web().get_lists().getByTitle('TestPostModification');
https://stackoverflow.com/questions/19423286
复制相似问题