0

我在库上创建了一个 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);
  })

}

4

1 回答 1

2

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);

  });
}

在此处输入图像描述

在此处输入图像描述

于 2019-11-19T09:24:00.800 回答