3

一部の Web サービス (SharePoint 2010 SocialDataServices) を実行するために JavaScript を使用しています。「CountCommentsOnURL」コマンドは問題なくテスト済みですが、たとえば「AddComment」コマンドを使用しようとすると、次のエラーが発生します。

「サーバーは要求を処理できませんでした。このページのセキュリティ検証が無効です。Web ブラウザで [戻る] をクリックし、ページを更新して、操作をやり直してください。このページのセキュリティ検証が無効です。Web ブラウザで [戻る] をクリックしてください。ページを更新して、操作をやり直してください。」

インターネットを調べていると、いくつかのセキュリティ設定をオフにすることに関する記事を見たことがあります。明らかに、ページを更新しても機能しません。

何か案は?

4

1 に答える 1

0

次の例は、クライアント側で SocialDataServices サービスを介してコメントを投稿する方法を示しています。

例 1. コメントの追加

//url parameter corresponds to Page Url
//comment parameter 
function addComment(url,comment)
{
     var soapEnv =
        "<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>    \
                    <AddComment xmlns='http://microsoft.com/webservices/SharePointPortalServer/SocialDataService'> \
                                <url>" + url + "</url> \
                                <comment>" + comment + "</comment> \
                                <isHighPriority>false</isHighPriority> \
                                <title></title> \
                     </AddComment> \
              </soap:Body> \
         </soap:Envelope>";

    $.ajax({
        result: result,
        url: _spPageContextInfo.webServerRelativeUrl + "/_vti_bin/SocialDataService.asmx",
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        contentType: "text/xml; charset=\"utf-8\"",
        beforeSend: function (xhr) {
                        xhr.setRequestHeader("SOAPAction", "http://microsoft.com/webservices/SharePointPortalServer/SocialDataService/AddComment");
                },
        success: function(data, status, xhr){
           //..
        }
    });
}  

例 2. SPServices ライブラリを使用したコメントの追加

function addComment(url,comment)
{

   $().SPServices({
        operation: "AddComment",
        url: url,
        title:'',
        comment:comment,
        completefunc: function (xData, Status) {
           console.log($(xData.responseXML));
        }
    });
}

使用法:

addComment('http://intranet.contoso.com/pages/somenews.aspx','new comment goes here');
于 2013-10-30T16:08:36.643 に答える