休息403禁止的SharePoint Framework应用程序

时间:2018-01-13 21:15:33

标签: reactjs rest sharepoint sharepointframework

我正在尝试学习反应并正在创建SharePoint Framework Web部件应用程序。我正在尝试使用fetch from react从站点上的列表中检索数据。我在托管的SharePoint工作台中工作。

当我从按钮点击运行时,我得到403禁止。当我在邮递员中设置相同的休息呼叫时,我得到了返回的预期数据。我相信我需要在标头中添加X-RequestDigest,但是document.getElementById(“__ REQUESTDIGEST”)返回null。我在SharePoint工作台中做错了什么?

submit = e => {
 fetch(
  "https://MY_URL_HERE.sharepoint.com/_api/lists/getbytitle('MY_LIST_NAME_HERE')/items",
  {
    method: "GET",
    headers: {
      "Accept": "application/json;odata=verbose",
      "Content-Type": "application/json;odata=verbose",
      "odata-version": "",
      "IF-MATCH": "*",
      "X-HTTP-Method": "MERGE",
    }
  }
 ).then(response => console.log(response));
};

1 个答案:

答案 0 :(得分:0)

SPFx提供内置httpclient来进行REST API调用。

不,如果您在SharePoint托管工作台中,那么,要获取列表项,您不需要请求摘要。

修改您的代码,如下所述:

添加以下导入声明:

import { SPHttpClient, SPHttpClientResponse, SPHttpClientConfiguration } 
from '@microsoft/sp-http';

现在,您可以使用以下代码代替获取:

this.context.spHttpClient.get("https://MY_URL_HERE.sharepoint.com/_api/lists/getbytitle('MY_LIST_NAME_HERE')/items",  
      SPHttpClient.configurations.v1)  
      .then((response: SPHttpClientResponse) => {  
        response.json().then((responseJSON: any) => {  
          console.log(responseJSON);  
        });  
      });