0

SharePointサイトのHTMLとJavaScriptを記述したカスタムページを作成しています。私はカスタムHTMLの中にドキュメントライブラリを埋め込みたいと思います。私はSharePointデザイナーで書いています。SharePoint Restドキュメントライブラリ

私は、ドキュメントライブラリをカスタムhtmlに簡単に埋め込む方法を見つけましたが、残りのAPIについてはいくつかのドキュメントを見つけられませんでした。私はこれを使用して、ユーザーがドキュメントライブラリをナビゲートするために自分のajaxアプリケーションをhtmlで書くことができると考えました。

私は現在、私は、ドキュメントライブラリの内容のHTMLまたはJSONを引くことができるかどうかだけを確認するには、このjavascripをしようとしています:

<script type="text/javascript"> 
var folderUrl = "x/x/x/testDocumentLibrary/Forms/AllItems.aspx"; 
var url = _spPageContextInfo.webServerRelativeUrl + "/_api/Web/GetFolderByServerRelativeUrl('" + folderUrl + "')?$expand=Folders,Files"; 

$.getJSON(url,function(data,status,xhr){ 

    for(var i = 0; i < data.Files.length;i++){ 
     console.log(data.Files[i].Name);  
    } 

    for(var i = 0; i < data.Folders.length;i++){ 
     console.log(data.Folders[i].Name);  
    } 
}); 
</script> 

私はfolderUrl変数のための右のURLを使用していた場合、私はわかりません。

いくつかのテストを実施するために、_spPageContextInfo.webServerRelativeURLは何を引きますか?私は後方に働くことができ、最初にSP関数呼び出しを使用してURLを手動で作成できるかどうかを確認しようとしています。

答えて

1

サンプルコードのfolderUrl変数は、ライブラリのパスで終わる必要があります。 /Forms/AllItems.aspxまでのすべてです。/x/x/x/testDocumentLibrary/x/x/x/は、ライブラリが存在するサイトへのサーバー相対パスです。

_spPageContextInfoオブジェクトはサーバー相対URLの2つのバリエーション、(SharePointの専門用語では「ウェブ」と呼ばれる)現在のサイトのための1とする(SharePoint専門用語では「サイト」と呼ばれる)現在のサイトコレクションのための1つを提供。適切には、これらの特性はwebServerRelativeURLおよびsiteServerRelativeURLと表示されています。どちらもサーバー相対であり、ドメイン名の最初の部分を除外しています。 (https://constoso.com/sites/stackoverflowの代わりに/sites/stackoverflowが返されます)

REST呼び出しの場合は、サーバーの相対URLではなく絶対URLが必要です。 _spPageContextInfoのプロパティwebAbsoluteURLsiteAbsoluteURLでウェブとサイト絶対URLにアクセスできます。

アクセスしているリスト/ライブラリがRESTが実行されている現在のサイトにある場合は、webAbsoluteURLプロパティを使用してください。

+0

デザイナーの古いページをコピーして名前をつけただけですが、これがすべて動作するのか、それとも最初に共有ポイントのWebサイトにページを作成する必要がありますか? – searayman

+0

同じサイトにコピーしたと仮定すると、うまくいくはずです。 'folderUrl'変数の文字列のフォーマットの詳細については、私の更新された答えを見てください。 – Thriggle

関連する問題