小编its*_*o91的帖子

TFS2013 的 REST API 调用

好的,我已经阅读了多篇关于我的主题的文章,但似乎没有任何帮助。我试图完成这个家伙在这篇文章中想同样的事情在这里。我在 angular http get 请求中使用了答案 (https://{yourserver}/defaultcollection/_apis/git/repositories?api-version=1.0 ) 中所述的示例,但出现 401 错误,说明我提供的凭据无效。

然后我下载了 curl 并提供了以下命令“curl -u username:password http://{myserver}/defaultcollection/_apis/git/repositories?api-version=1.0”,结果还是一样,html说我愿意没有有效的凭据。有人可以指出我正确的方向,以便我可以将项目根分支和子分支以及数据一起拉出来吗?

本质上,我正在寻找一种从服务器提取数据并将其显示在我的 Web 应用程序上的方法。我需要每个分支和子分支的分支名称和历史记录。

更新

所以我现在可以使用 Richard 推荐的 --ntlm 开关 cURL 进入这个服务。现在为了让我的应用程序真正连接到服务,我发现我可以使用以下方法传递 Windows 凭据:

withCredentials:true
Run Code Online (Sandbox Code Playgroud)

它不再给我 401 错误。相反,我没有收到新的错误说明:

XMLHttpRequest cannot load http://{servername}/{defaultcollection}/_apis/projects?api-version=1.0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

我接下来要采取什么措施来使这项工作发挥作用?

解决方案

我接受了 Richard 的建议并创建了我自己的 asp.net web api 来与 tfs 进行通信。我能够修改 web.config 文件以允许 CORS。我将以下行添加到文件的 system.webServer 部分。

<httpProtocol>
   <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
   </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

这样做已经解决了我收到的错误消息,并且创建一个简单的 …

api rest curl angularjs

3
推荐指数
1
解决办法
1833
查看次数

标签 统计

angularjs ×1

api ×1

curl ×1

rest ×1