需要使用javascript在tfs 2015中创建工作项的帮助吗

需要使用javascript在tfs 2015中创建工作项的帮助吗,javascript,ajax,tfs,tfs-2015,azure-devops-rest-api,Javascript,Ajax,Tfs,Tfs 2015,Azure Devops Rest Api,当我试图传递用于创建任务项的json对象,并传递内容类型application/json patch+json以及类型patch时,我得到了一个错误:请求表示不支持的方法类型“patch\”的“内容类型为\“\”。此方法的有效内容类型为application/json=patch+json。“ 当我用相同的应用程序类型和类型补丁在Postman中调用它时,它工作得很好。我试图创建一个网页,当我点击表单上的一个按钮时,让它调用服务 var newJson = '[{"op":"add","path

当我试图传递用于创建任务项的json对象,并传递内容类型application/json patch+json以及类型patch时,我得到了一个错误:请求表示不支持的方法类型“patch\”的“内容类型为\“\”。此方法的有效内容类型为application/json=patch+json。“

当我用相同的应用程序类型和类型补丁在Postman中调用它时,它工作得很好。我试图创建一个网页,当我点击表单上的一个按钮时,让它调用服务

var newJson = '[{"op":"add","path":"/fields/System.Title","value":"JavaScript implementation for Microsoft Account"}]';
var oJson = JSON.stringify(newJson);

//AZURE URL
var url = "https://dev.azure.com/AIZ-GL-dryrun/375977db-f390-4aac-bc4d-808f51360f9a//_apis/wit/workitems/$task?api-version=5.1";

jQuery.support.cors = true;
$.ajax({
url: url,
async: true,
data: oJson,
type:'PATCH',
contentType: "application/json-patch+json;",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic "+btoa(username+':'+password));
},
success: function(data){
    var myObject = JSON.stringify(data);
    alert("RESULT: "+myObject);
},
error: function(err) {
    alert(JSON.stringify(err))}
});
正如Daniel指出的,
var url=”https://dev.azure.com/AIZ-GL-dryrun/375977db-f390-4aac-bc4d-808f51360f9a//_apis/wit/workitems/$task?api版本=5.1“

您试图在版本5.1中使用API。如您所见,该版本不受Team Foundation Server 2015支持。p> 需要在TFS 2015上使用2.x版,然后重试。有关api版本的更多详细信息,请查看此官方链接--


更新,使用post而不是补丁,然后重试

return $.ajax({
        url: "https://{account}.visualstudio.com/DefaultCollection/{project}/_apis/wit/workitems/$Bug?api-version=1.0",
        type: "POST",
        headers: {
            "Authorization": "Basic " + btoa("{user}:{password}"),
            "X-HTTP-Method-Override": "PATCH",
            "Content-Type": "application/json-patch+json; charset=utf-8"
        },
        dataType: 'json',
        cache: false,
        data: JSON.stringify(myData),
        async: false,
        error: function (jqXHR, textStatus, errorThrown) {
                //alert(jqXHR.status + ': ' + errorThrown);
            },
        success: function (data) {
           // alert(JSON.stringify(data));
            }
        });
另一种方法是,也可以使用工作项批处理api:

例如:

http://[collection url]/_apis/wit/$batch?api-version=1.0
正文:


更多信息,您可以参考:

是Azure DevOps还是TFS 2015?两者的API版本将会有很大的不同。TFS 2015支持REST API的2.x系列。我正在使用TFS2015感谢您的帮助和建议。我编辑了url并再次尝试。但我还是犯了同样的错误。。。。解决此问题的任何其他提示?var url=”“Hi Mirooshidan Asokan,请使用post而不是补丁或使用工作项批处理api。更多详细信息请查看我的更新回复Hi Mirooshidan Asokan,只是查看提供的信息是否有用。你能解决它吗?如果我的回答有帮助或给出了正确的方向。感谢,这也将帮助社区中的其他人。
[
  {
    "method": "PATCH",
    "uri": "/ScrumStarain/_apis/wit/workItems/$Product Backlog Item?api-version=1.0",
    "headers": {
      "Content-Type": "application/json-patch+json"
    },
    "body": [
      {
        "op": "add",
        "path": "/fields/System.Title",
        "value": "apip1"
      },
      {
        "op": "add",
        "path": "/id",
        "value": "-1"
      }
    ]
  },
  {
    "method": "PATCH",
    "uri": "/ScrumStarain/_apis/wit/workItems/$Task?api-version=1.0",
    "headers": {
      "Content-Type": "application/json-patch+json"
    },
    "body": [
      {
        "op": "add",
        "path": "/fields/System.Title",
        "value": "apip2"
      },
      {
        "op": "add",
        "path": "/id",
        "value": "-2"
      }

    ]
  }
]