SonarQube 是不是支持 JSONP?
Posted
技术标签:
【中文标题】SonarQube 是不是支持 JSONP?【英文标题】:Does SonarQube support JSONP?SonarQube 是否支持 JSONP? 【发布时间】:2017-02-13 15:57:08 【问题描述】:我正在开发一个无法从 SonarQube 服务器检索数据的 WebApp,因为浏览器会抱怨 No 'Access-Control-Allow-Origin' header is present on the requested resource
。搜索克服此错误的推荐方法是使用JSONP
或CORS
。我找不到有关 JSONP 回调的文档。这个功能是 SonarQube 服务器的一部分吗?
我找到了解决这个问题的替代方案
使用 reverse proxy 处理 API 请求并使用 CORS 标头提供服务。
使用cors-anywhere
包来执行此操作。
【问题讨论】:
【参考方案1】:注意:对于以下方式,您将需要 CROSS ORIGIN POLICTY ALLOW
有办法远程获取 SonarQube 数据。
您可以尝试通过 CURL 来感染数据。 例如 curl -u MY_LOGIN:MY_PASSWORD https://sonarqube.com/api/user_tokens/search
替换您的 sonarqube 服务器详细信息,它将为用户获取用户令牌列表的数据。如果您使用带有 Angular js 的节点服务器,您可以编写具有基本身份验证的模块,将访问您想要的 api。 参考文档:https://docs.sonarqube.org/pages/viewpage.action?pageId=2752802 例如 - 获取系统 api 上的项目列表是 http://yourservername/api/resources
希望对你有所帮助。
【讨论】:
这不是要回答我原来的问题“SQ 支持 JSONP 吗?”这是一个主要关于 SQ 内部和部分关于 CORS 的问题(我已经通过问题中提到的 hack 解决了这个问题)。【参考方案2】:如果您想从远程 SonarQube 服务器获取数据并在 Web 应用程序中提供数据,目前唯一的方法是在后端获取数据,然后将结果传递给您的前端。
【讨论】:
您能详细解释一下吗?如果我在 Node 中运行 Angular 应用程序,您的意思是 Node 必须从 Web API 获取 json 吗? 我的意思是WS调用的代码不能在Web浏览器中运行,否则你会遇到同源问题。以上是关于SonarQube 是不是支持 JSONP?的主要内容,如果未能解决你的问题,请参考以下文章