I'm trying to do an AJAX SOAP call to the Lists web service, specifically UpdateListItems. The query isn't malformed, and is working appropriately when using a user with full permissions. When a user with contribute permission tries the query below (and the list being written to is properly permission), I get a 403 error. Are UpdateListItems permissions set elsewhere, such as the web.config file?
UPDATE 1
I am using jQuery to make the AJAX call. Following is the code used:
var query = '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">\
<soap:Body>\
<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">\
<listName>{2C3F42BF-A33D-478A-A06E-2342FFC9F3F8}</listName>\
<updates>\
<Batch OnError="Continue">\
<Method ID="1" Cmd="New">\
<Field Name="Title">email@email.com</Field>\
<Field Name="Name">My Name</Field>\
<Field Name="Date"></Field>\
</Method>\
</Batch>\
</updates>\
</UpdateListItems>\
</soap:Body>\
</soap:Envelope>';
$.ajax
({
url: "/_vti_bin/lists.asmx",
beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); },
type: "POST",
dataType: "xml",
data: query,
complete: processResult,
contentType: "text/xml; charset=\"utf-8\""
});