javascript - devops REST API:无法使用 PATCH 方法更新工作项状态
问题描述
我正在使用 DevOps restapi 来获取一些信息。POST 方法对我来说很好用。
我想更新我的工作项的状态。为此,我需要使用 PATCH 方法。这是行不通的,也没有给出任何错误。
function postApiData(ApiUrl, responseBody) {
var res = '';
try {
$.ajax({
type: 'POST',
async: false,
url: ApiUrl,
contentType: 'application/json',
data: JSON.stringify(responseBody),
cache: false,
dataType: 'json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("" + ":" + _token));
},
}).done(function (data) {
res = data;
}).fail(function (e) {
});
} catch (error) {
var x = error;
throw x;
}
return res;
};
对于补丁方法,我正在修改一些东西。但不更新我的工作项并没有给出任何错误。我还检查了我的令牌访问权限。我有完全访问权限。
type: 'PATCH',
contentType: 'application/json-patch+json',
解决方案
我用PATCH
Ajax 写了一个简单的示例:
<script type="text/javascript">
$(document).ready(function () {
$("#SelectWIT").on("click", function () {
var json= [{
"op": "add",
"path": "/fields/System.State",
"value": "Closed"
}];
$.ajax({
type: 'PATCH',
url: 'https://dev.azure.com/{org name}/_apis/wit/workitems/{WIT id}?api-version=5.1',
contentType: 'application/json-patch+json',
data: JSON.stringify(json),
cache: false,
dataType: 'application/json-patch+json',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("" + ":" + "{PAT token}"));
},
}).error(function (e) {
var s = "error error error";
});
})
});
</script>
注意:不仅contentType
需要设置为application/json-patch+json
,在 中也一样dataType
。
我使用 Fiddler 来捕捉这个操作:
您可以看到工作项状态更新成功。
更新:
推荐阅读
- python - Pytorch 的 add_module() 是什么?
- javascript - 如何根据第一个选定值删除 select2 选项
- python - Django:使用 django-tables2 和 django-filter 搜索结果
- python - 在导入模块中的函数之间共享 python 字典的最佳实践
- html - 如何将搜索栏移到顶部?
- javascript - 来自客户端的信号 node.js express 服务器
- python - subprocess.Popen 在 Windows 中工作但在 Ubuntu 中不工作
- node.js - 什么会导致 package-lock.json 中的 lockfileVersion 减一?
- javascript - 创建 DIScord Bot (javascript) 时出错
- python - 即使我使用 TYPE_CHECKING 导入,也会为注释获取 NameError