我在名为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)
感谢。
答案 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服务。