2016-10-05 67 views
0

我正在研究一個WebApp,它無法從SonarQube服務器檢索數據,因爲瀏覽器抱怨No 'Access-Control-Allow-Origin' header is present on the requested resource。搜索後推薦的方法來解決這個錯誤是使用JSONPCORS。我無法找到有關JSONP回調的文檔。這個功能是SonarQube服務器的一部分嗎?SonarQube支持JSONP嗎?

替代解決方案,我發現解決這個問題

reverse proxy去處理API請求,並與CORS標頭爲它服務。 使用cors-anywhere包執行此操作。

回答

2

如果您想從遠程SonarQube服務器獲取數據並將其提供給Web應用程序,那麼現在唯一的辦法是在後端抓取它,然後將結果傳遞給您的前端。

+0

請問您能詳細解釋一下嗎?如果我在Node中運行Angular應用程序,那麼您的意思是Node是否需要從Web API中獲取json? –

+0

我的意思是,WS調用的代碼不能在Web瀏覽器中運行,否則您將遇到相同的原始問題。 –

-1

注:下面的方法,你將需要跨源POLICTY ALLOW

有方法來遠程獲取SonarQube數據。

  1. 您可以嘗試通過CURL進行fecthing數據。 e.g捲曲-u MY_LOGIN:MY_PASSWORD https://sonarqube.com/api/user_tokens/search

    • 取代你sonarqube斷絕細節將取回的用戶列表中的數據托克斯(Tokes)用戶。
  2. 如果您使用角度js的節點服務器,您可以編寫基本身份驗證模塊將打你想要的apis。 參考文檔:https://docs.sonarqube.org/pages/viewpage.action?pageId=2752802 e.g - 獲取對系統的API項目的名單是 http://yourservername/api/resources

希望它會幫助你。

+0

這並不是爲了回答我原來的問題「SQ是否支持JSONP?」這主要是關於SQ的內部問題,部分關於CORS(我已經通過問題中提到的黑客解決了這個問題)。 –

+0

它只支持JSON和XML格式 –