“The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.”
Si Sharepoint vous donne ce joli message d’erreur lorsque vous communiquez avec un de ses web services, alors il est possible que vous ayez oublié d’ajouter un header “SOAPAction” avec le nom du service associé.
Prenons l’exemple du web service lists.asmx et de l’action “UpdateListItems”. Si vous allez sur l’URL suivante http://votre_sharepoint/_vti_bin/lists.asmx?op=UpdateListItems vous verrez la SOAPAction qu’il faut définir (cliquez pour agrandir) :
Dans l’exemple ci-dessus il faut donc définir l’header “SOAPAction” avec la valeur “http://schemas.microsoft.com/sharepoint/soap/UpdateListItems”.
Si vous utilisez l’AJAX de jQuery cela donnera quelque chose comme ça :
jQuery.ajax({ url: "http://your_sharepoint/_vti_bin/lists.asmx", type: "POST", dataType: "xml", data: soapEnv, beforeSend: function(xhr) { xhr.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems'); }, contentType: "text/xml; charset=\"utf-8\"" });
Si vous utilisez l’add-on Firefox Poster, alors utilisez l’onglet “Headers”.