如何在请求Kylo API时修复跨源错误

时间:2017-11-30 14:47:09

标签: rest cors kylo

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

我尝试使用Search API调用网址:

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)

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

最后,我决定创建一个代理Web服务,该服务托管在与Kylo相同的服务器中,只是将请求从Web重定向到Kylo服务。