簡體   English   中英

獲得400個錯誤請求SharePoint 2013 Rest API

[英]Getting 400 Bad Request SharePoint 2013 Rest API

我正在創建一個使用jQuery進行REST API調用以重命名SharePoint子網站的Web部件。 例如,當在列表上使用EditForm.aspx上的自定義按鈕時,這會起作用。 它也適用於Fiddler。 但是,當我嘗試使用Web部件中的自定義按鈕執行此操作時,我收到HTTP 400錯誤請求。

這是我的代碼:

<script type="text/javascript" src="https://mysite.mysharepointsite.com/sites/vsdev/SiteAssets/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="https://mysite.mysharepointsite.com/sites/vsdev/SiteAssets/jquery.SPServices-2014.01.min.js"></script>

<script type="text/javascript">

function RenameSubsite()
{

$.ajax({
    url: "https://mysite.mysharepointsite.com/sites/vsdev/_api/web/",
    type: "POST",
    data: JSON.stringify({ '__metadata': { 'type': 'SP.Web' }, 'ServerRelativeUrl': "/vsdev2" }),
    headers: {
        "accept": "application/json;odata=verbose",
        "content-type": "application/json;odata=verbose",
        "content-length": "225",
        "X-HTTP-Method": "MERGE",
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),
        "IF-MATCH": "*"
    },
    success: function (return_data, textStatus) {
        alert('Successfully Renamed the Site!');
        return;

    },

    error: function (xhr, textStatus, errorThrown) {
        alert('Error! - Status: ' + textStatus + ' Desc: ' + errorThrown);
        return;
    }
});

}
</script>

<p>
<input type="button" value="Rename Subsite to vsdev2" onclick="RenameSubsite()" />
</p>

非常直接的REST API調用...但它不能從Web部分工作..

更新 - 更新'標題'而不是'ServerRelativeUrl'工作正常。 我已經嘗試了所有類型的值變體來更新ServerRelativeUrl。

更新ServerRelativeUrl屬性是不可能的。 一旦創建了網站集,它就會被修復。 您無法通過JSOM / CSOM操縱此值。

更改網站集URL的唯一方法是執行服務器端代碼: PowerShell (或其他cmdlet,如Copy-SPSite,Export-SPSite,Move-SPSite等)或SSOM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM