【发布时间】:2020-12-02 11:30:59
【问题描述】:
我将文件上传到共享点并尝试更新其元数据,但我在最后一步总是收到错误 400。
据我了解,sharepoint 仅处理列表和项目。 “文件夹”是一个列表,里面的元数据和文件都是项目。 “文件”是一个列表,它的元数据是项目。
关于更新元数据的文档说要发出 POST 请求:
- https://{site_url}/_api/web/lists/GetByTitle('{list_title}')/items({item_id})
更新文件必须通过 PUT 方法完成(不允许 MERGE),但更新元数据必须专门通过 MERGE 方法完成。我都试过了,都失败了。
这是我当前的更新元数据请求,但我继续收到错误 400。
var data = {
"__metadata": {
"type":type
},
"Description":"lorem ipsum"
};
var headerToken = {
headers: {
'Authorization':'Bearer ' + token
, 'X-HTTP-Method':'MERGE'
, 'Accept':'application/json;odata=verbose'
, 'Content-Type':'application/json;odata=verbose'
, 'Content-Length':JSON.stringify(data).length
, 'If-Match': etag
, 'X-RequestDigest': digest
}
};
try {
var response = await axios.post(
'https://{site_url}/_api/web/lists/GetByTitle("'+MY_FOLDER+'")/items('+id+')'
, JSON.stringify(data)
, headerToken
);
return response;
}
type、etag 和 id 来自上传文件响应,digest 来自请求上下文信息端点。 MY_FOLDER 是一个测试库,此时是一个常量。
【问题讨论】:
标签: node.js sharepoint