我正在尝试为 Visual Studio Team Services REST API 编写一个 JavaScript 客户端,它将 AJAX 请求发送到我们自托管的 Team Foundation Server 2015,但我面临一个跨域问题。
API 需要凭据来进行身份验证,但出于安全原因,浏览器会阻止我的请求,因为该参数Access-Control-Allow-Origin
是使用通配符设置的*
。
我试图在 IIS 管理器的 HTTP 响应标头和 TFS web.config 文件中添加此参数(实际上是相同的),但我收到一个错误,告诉我此参数有两个不同的值(例如:*
和http://localhost:58785
),应该只有一个。我猜这个值已经在我无法访问的库代码中定义了,因为 TFS Web 服务已经在 IIS 上编译和运行。
我还尝试使用<location allowOverride="false">
web.config 中的标记来禁止配置覆盖,但在这种情况下 TFS 不会启动。
有人已经在这里问过这个问题,并且还在uservoice上发了一张票,但是由于 API 的名称实在是模棱两可(Visual Studio Online REST API),我不知道这个人是否在网上谈论真正的 Visual Studio 或者他的案例与我的相同(自托管 TFS 服务器)。
我们已经在 C# 中实现了一些运行良好的功能,但现在我们确实需要实现 JavaScript 客户端。编写 Web 服务并将其用作查询 API 的代理对我们来说是一团糟,我们不想这样做。
由于我们无法更改配置,我们无法向 API 发送 AJAX 请求,这非常可悲。