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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*