gpt4 book ai didi

angularjs - TFS2013 的 REST API 调用

转载 作者:行者123 更新时间:2023-12-02 23:24:10 26 4
gpt4 key购买 nike

好吧,我已经阅读了有关我的主题的多篇文章,但似乎没有一篇有帮助。我正在努力完成这个人在这篇文章中想要的同样的事情here 。我在 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说我没有有效的凭据。有人可以为我指出正确的方向,以便我可以拉出项目的根分支和子分支以及数据吗?

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

更新

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

withCredentials:true

它不再给我一个 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.

我接下来要采取哪些步骤来实现这一目标?

解决方案

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

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>

这样做解决了我收到的错误消息,并且创建一个简单的 api 来获取特定信息并不难。感谢您的所有帮助。

最佳答案

在你的curl命令中添加--ntlm作为选项。

命令应如下所示:

curl -u username:password --ntlm http://{myserver}/defaultcollection/_apis/git/repositories?api-version=1.0

请注意,该 API 目前不支持 CORS。这意味着您可以毫无问题地从自己的服务器端代码进行 API 调用,但无法直接从浏览器进行调用。有一个UserVoice suggestion启用此功能,您可以投票。

关于angularjs - TFS2013 的 REST API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com