【问题标题】:SPFX React Updating Document Library file metadata using Rest API 404 issueSPFX React 使用 Rest API 404 问题更新文档库文件元数据
【发布时间】:2020-03-14 12:10:44
【问题描述】:

我在库上创建了一个 SPFX 扩展,并尝试更新文档库中特定文件夹内的文件元数据。我有该特定文件的项目 ID,但出现 404 问题。这是一直在使用的示例代码,

this.spHttpClient.post(`${url}`,
  SPHttpClient.configurations.v1,
  {
    headers: {
      "Accept": "application/json; odata=verbose",
      'content-type': 'application/json;odata=verbose',
      "X-RequestDigest": requestDigest,
      "X-Http-Method": "MERGE",
      "If-Match": "*"
    },
    body: JSON.stringify({
      "__metadata": { "type": "SP.Data.10Q_x0020_and_x0020_10K_x0020_Filing_x0020_UnzippedItem" },
      "Title": titleLinkUrl
    })
  })
  .then((response: SPHttpClientResponse): void => {
    alert('sucess')
  }).catch(error => {
    console.error(error);
  })

}

【问题讨论】:

    标签: reactjs sharepoint spfx sharepoint-rest-api spfx-extension


    【解决方案1】:

    404 错误通常意味着没有得到有效的列表项。

    建议在 Browser 中测试 Rest Endpoint 看是否有 Json 返回。正文和标题应该是正确的。 我这边测试了一个示例代码,请参考:

    private updateItem() {
    
      var posturl = this.props.context.pageContext.web.absoluteUrl + `/_api/web/lists/GetByTitle('doc2')/items(10)`;
      var payload = JSON.stringify({
        "__metadata": {
          "type": "SP.Data.Doc2Item"
        },
        "Title": "UpdatedTitle"
      });
    
      var option = {
        headers: {
          'IF-MATCH': '*',
          'Content-type': 'application/json;odata=verbose',
          "accept": "application/json;odata=verbose",
          "odata-version":"3.0",
          'X-HTTP-Method': 'PATCH'
        },
        body: payload
      };
    
      return this.props.context.spHttpClient.post(posturl, SPHttpClient.configurations.v1, option).then((response: SPHttpClientResponse) => {
        alert(response.status + ':' + response.ok);
    
      });
    }
    
    
      var option = {
        headers: {
          'IF-MATCH': '*',
          'Content-type': 'application/json;odata=verbose',
          "accept": "application/json;odata=verbose",
          "odata-version":"3.0",
          'X-HTTP-Method': 'PATCH'
        },
        body: payload
      };
    
      return this.props.context.spHttpClient.post(posturl, SPHttpClient.configurations.v1, option).then((response: SPHttpClientResponse) => {
        alert(response.status + ':' + response.ok);
    
      });
    }
    

    【讨论】:

    • @Vijay,不客气,我建议您可以接受作为答案,这样它也可以帮助在论坛中有类似问题的其他人。 :)
    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    相关资源
    最近更新 更多