Sharepoint / Angular 403错误-发行时,FormDigestValue应该早一小时吗?

时间:2018-07-09 16:14:46

标签: angular rest sharepoint

我创建了一个共享点在线加载项,其中包含要从嵌入式Angular应用程序访问的列表(LearningsList)。

列出列表的内容工作正常,但是当尝试向列表中添加项目时,出现403禁止访问错误。

我尝试连接到contextinfo并检索最新的FormDigestValue(返回正确),但是仍然无法正常工作。

我唯一看到的问题是FormsDigestValue日期/时间始终比本地时间晚一个小时。这可能是问题吗?

我拥有管理员权限,可以手动添加项目。

  var restUrl = '/SharePointAddIn3/_api/contextinfo';
  let headers2 = new HttpHeaders(
    {
    'Accept':'application/json;odata=verbose'
    }
    );

return this.http.post(restUrl,{}, headers2)
  .subscribe(
    res => {
      console.log(res);

      console.log("Started onSubmitSP: digest result=" + res.FormDigestValue);


      var restUrl = '/SharePointAddIn3/_api/lists/LearningsList/items';

      var digest = res.FormDigestValue;

      console.log("Started onSubmitSP: digest:" + digest);




      return this.http.post(restUrl,
        JSON.stringify(
          { '__metadata': { 'type': 'SP.Data.ListFieldsContentType' }, 'Title': 'Test'}
        ), 

        {
          'X-RequestDigest' : digest, 
          'accept':"application/json;odata=verbose",
          'content-type':"application/json;odata=verbose"
        })

      .subscribe(
        res => {
          console.log(res);
          console.log("Success!!! added the record:");
          this.submitted = true;
        },
        err => {
          console.log("Error occured saving:");
          console.log(err);
        }

      );





    },
    err => {
      console.log("Error occured");
    }
  )

}

1 个答案:

答案 0 :(得分:0)

看来问题出在我提供标题的方式上。它们应该被标记为标题,如下所示:

{
     headers {
      'X-RequestDigest' : digest, 
      'accept':"application/json;odata=verbose",
      'content-type':"application/json;odata=verbose"
       }
    }

而不是:

{
      'X-RequestDigest' : digest, 
      'accept':"application/json;odata=verbose",
      'content-type':"application/json;odata=verbose"
    }