[英]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.