1

我在名为的服务器中有一个正在运行的 Kylo Sandbox 实例:kyloserver. 我正在尝试从我的网站访问 Kylo API,在localhost:8080.

我尝试使用 Search API 调用 url:

http://kyloserver:8400/proxy/v1/feedmgr/search?q=mary&rows=20&start=0

并在这样的标头中使用基本身份验证(javascript):

Authorization: 'Basic ' + btoa(this.username + ":" + this.password)

回应是:

无法加载 http://kyloserver:8400/proxy/v1/feedmgr/search?q=mary&rows=20&start=0:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。因此不允许访问源“ http://localhost:8080 ”。响应具有 HTTP 状态代码 403。

如果我通过登录 UI 使用 swagger,我可以正确获得结果。

如何成功访问 API?

(Kylo 版本:0.8.3)

谢谢。

4

2 回答 2

1

Kylo 默认禁用 CORS 支持。您需要编写一个插件来使用启用 CORS 的插件覆盖默认配置: https ://github.com/Teradata/kylo/blob/v0.8.4/services/service-app/src/main/java/com /thinkbiganalytics/server/DefaultWebSecurityConfigurer.java

于 2017-11-30T18:27:29.370 回答
0

最后,我决定创建一个代理 Web 服务,它与 Kylo 托管在同一台服务器上,它只是将来自 Web 的请求重定向到 Kylo 服务。

于 2018-01-03T08:48:21.480 回答