SharePoint通过SoapEnvelope

时间:2015-05-20 19:01:53

标签: javascript jquery ajax sharepoint soap

我正在尝试使用JavaScript,jQuery和Ajax在SharePoint列表中创建一个新项目,这是我的功能:

function CreateItem(Title) { 
var soapEnv =          
"<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +         
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +          
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +      
"<soapenv:Body>" +                           
"<UpdateListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">" +     
"<listName>listName</listName>" +                
"<updates>" +                          
"<Batch OnError=\"Continue\">" +           
"<Method ID=\"1\" Cmd=\"New\">" +            
"<Field Name=\"ID\">New</Field>" +            
"<Field Name=\"Title\">" + Title + "</Field>" +    
"</Method>" +                    
"</Batch>" +                         
"</updates>" +                        
"</UpdateListItems>" +               
"</soapenv:Body>" +                  
"</soapenv:Envelope>";               
$.ajax({     
url: "http://URL/_vti_bin/lists.asmx",
type: "POST",                           
dataType: "xml",                        
data: soapEnv,                         
beforeSend: function (xhr) {             
xhr.setRequestHeader("SOAPAction",           
"http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); 
},                           
complete: processCreateResultSuccess,    
contentType: "text/xml; charset=\"utf-8\"",    
error: processCreateResultError             
});                    

}

这部分工作正常,我能够使用在函数中传递的Title创建一个新项目。但是我还想在创建它时添加一个描述,并添加:

"<Field Name=\"Description\">" + "a description" + "</Field>" +

不起作用,为什么会这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

您是否检查过此字段是否存在以及您是否正在使用其内部名称?另一件事,我很好奇你为什么使用这种方法?你不能使用客户端对象模型来执行这些操作吗?