Si vous avez l’erreur “The security validation for this page is invalid” [Sharepoint]

“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) :
Copie d'écran du web service lists.asmx

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”.

Leave a Reply

Your email address will not be published. Required fields are marked *

*