« 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 ».