문제

CSOM (JavaScript)을 사용하여 SharePoint Hosted App에서 호스트 사이트에있는 목록의 제목을 가져 오려고합니다.나는 매니페스트 파일에 대한 권한을 추가하고 목록을 선택했지만 여전히 ExecuteQueryAsync에서 액세스가 거부되었습니다.다음은 내 코드가 있습니다 :

  hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
  var hostcontext = new SP.ClientContext(hostweburl);
  var oList = hostcontext.get_web().get_lists().getByTitle('SliderList');
  var camlQuery = new SP.CamlQuery();
  camlQuery.set_viewXml(' som query to get proper items')
  this.collListItem = oList.getItems(camlQuery);

   hostcontext.load(collListItem);

   hostcontext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
.

OnQuerySuccess 또는 OnQueryFailed에 가지는 않습니다. SP_CLIENTRUNTIMECONTEXT $ EXECUTEQUERYASYNC, sp.Runtime.debug.js, 3103 에 대한 액세스가 거부되었습니다.

도움이 되었습니까?

해결책

실제로 호스트 웹에 대해 앱 웹 sp.appcontextsite 에 대해 sp.clientContext를 생성해야합니다.호스트 웹의 목록에 대한 참조를 얻으려면 다음을 시도하십시오.

// Get the ClientContext for the app web
clientContext = new SP.ClientContext.get_current();
// Use the host web URL to get a parent context - this allows us to get data from the parent
hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
parentCtx = new SP.AppContextSite(clientContext, hostweburl);
parentWeb = parentCtx.get_web();
parentList = parentWeb.get_lists().getByTitle("SliderList");
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top