【问题标题】:How to get TeamCity 10 to return an Access-Control-Allow-Origin header?如何让 TeamCity 10 返回 Access-Control-Allow-Origin 标头?
【发布时间】:2017-06-10 11:04:11
【问题描述】:

我们正在使用 TeamCity 10.0.2 来构建/测试/等我们当前的项目。我们目前正在尝试使用 TeamCity 的内置 REST API 来访问有关构建的信息。为了运行这些 REST 调用,我们使用 Angular 1.5 的 http 库来执行 GET 请求。

但是,在运行 GET 请求时,我们收到错误消息“请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不允许访问 Origin 'null'。”

我在网上找到的是添加

rest.cors.optionsRequest.allowUnauthorized=true
rest.cors.origins=*

到我们在 TeamCity 中的内部属性。我们这样做了,但仍然收到错误。请注意,如果我们仅使用浏览器或使用 Postman 访问相同的 URL,它就可以工作;使用

从 Angular 运行请求时会出现问题
$http.get(teamCityUrl, {headers:{"Authorization": "token"}});

有什么想法吗?

【问题讨论】:

  • 当您进行 HTTP 调用时,您是否看到 Access-Control-Allow-Origin 标头?它在邮递员中工作的原因是浏览器出于安全原因需要CORS标头,而邮递员没有限制
  • 还有一些浏览器会拒绝该标头中的 *,因此请尝试仅设置托管 Angular 应用程序的域
  • 不,我没有看到响应的标题。话虽这么说,当我只使用浏览器(不是角度)发出请求时,它可以工作,但我仍然看不到响应。在设置域方面,TeamCity 是服务器,我无法控制其 API 及其响应内容。
  • ok 那么你需要检查teamcity的配置。您可能想阅读 CORS,您可以直接从浏览器中点击它,因为它不是 AJAX 调用。 CORS 策略适用于 AJAX 请求,基本上它会根据您尝试访问的域检查页面加载的域。

标签: angularjs cors teamcity


【解决方案1】:

这个配置对我有用:

rest.cors.optionsRequest.allowUnauthorized=true
rest.cors.origins=*

这使得响应标头具有“Access-Control-Allow-Origin: *”。 我正在使用 TeamCity 10.0.4。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2016-01-11
    • 2019-02-07
    • 2016-08-21
    • 2011-06-27
    • 1970-01-01
    相关资源
    最近更新 更多